|
262 | 262 | // \ref{meta.rel}, type relations
|
263 | 263 | template<class T, class U> struct is_same;
|
264 | 264 | template<class Base, class Derived> struct is_base_of;
|
| 265 | + template<class Base, class Derived> struct is_virtual_base_of; |
265 | 266 | template<class From, class To> struct is_convertible;
|
266 | 267 | template<class From, class To> struct is_nothrow_convertible;
|
267 | 268 | template<class T, class U> struct is_layout_compatible;
|
|
548 | 549 | constexpr bool @\libglobal{is_same_v}@ = is_same<T, U>::value;
|
549 | 550 | template<class Base, class Derived>
|
550 | 551 | constexpr bool @\libglobal{is_base_of_v}@ = is_base_of<Base, Derived>::value;
|
| 552 | + template<class Base, class Derived> |
| 553 | + constexpr bool @\libglobal{is_virtual_base_of_v}@ = is_virtual_base_of<Base, Derived>::value; |
551 | 554 | template<class From, class To>
|
552 | 555 | constexpr bool @\libglobal{is_convertible_v}@ = is_convertible<From, To>::value;
|
553 | 556 | template<class From, class To>
|
|
1472 | 1475 | \end{tailnote}
|
1473 | 1476 | \\ \rowsep
|
1474 | 1477 |
|
| 1478 | +\indexlibraryglobal{is_virtual_base_of}% |
| 1479 | +\tcode{template<class Base, class Derived>}\br |
| 1480 | + \tcode{struct is_virtual_base_of;} & |
| 1481 | + \tcode{Base} is a virtual base class of \tcode{Derived}\iref{class.mi} |
| 1482 | +%FIXME: We're inconsistent about whether or not entries in this column end with a period. |
| 1483 | + without regard to cv-qualifiers. & |
| 1484 | + If \tcode{Base} and |
| 1485 | + \tcode{Derived} are non-union class types, |
| 1486 | + \tcode{Derived} shall be a complete type. |
| 1487 | + \begin{note} |
| 1488 | +Virtual base classes that are private, protected, or ambiguous |
| 1489 | + are, nonetheless, virtual base classes. |
| 1490 | +\end{note} |
| 1491 | + \begin{tailnote} |
| 1492 | + A class is never a virtual base class of itself. |
| 1493 | +\end{tailnote} |
| 1494 | +\\ \rowsep |
| 1495 | + |
1475 | 1496 | \indexlibraryglobal{is_convertible}%
|
1476 | 1497 | \tcode{template<class From, class To>}\br
|
1477 | 1498 | \tcode{struct is_convertible;} &
|
|
0 commit comments