is_base_of
时间: 2023-08-04 11:03:18 浏览: 255
Base
`is_base_of` 是 C++ 类模板库中的一个类型特征,用于检查一个类是否是另一个类的基类。它的定义如下:
```c++
template< class Base, class Derived >
struct is_base_of;
```
其中,`Base` 是基类类型,`Derived` 是派生类类型。如果 `Derived` 是 `Base` 的派生类,那么 `is_base_of<Base, Derived>::value` 为 `true`,否则为 `false`。
例如,下面的代码可以用来检查 `Derived` 是否是 `Base` 的派生类:
```c++
#include <type_traits>
class Base {};
class Derived : public Base {};
int main() {
std::cout << std::boolalpha;
std::cout << std::is_base_of<Base, Derived>::value << std::endl; // 输出 true
std::cout << std::is_base_of<Derived, Base>::value << std::endl; // 输出 false
return 0;
}
```
阅读全文