is_convertible
判断是否可以被转化 第一个参数的类型 可以转化为第二个参数的类型
对于类:如果A是基类,B是子类,那么B可以转化为A,也就是B是一种A;用is_convertible表示如下:
std::cout<<std::boolalpha; //输出格式调整,0为false,非0为true
std::is_convertible<B,A>::value<<endl;// 判断B是否可以转化为A,并返回true or false
// is_convertible example
#include <iostream>
#include <type_traits>
struct A { };
struct B : A { };
int main() {
std::cout << std::boolalpha;
std::cout << "is_convertible:" << std::endl;
std::cout << "int => float: " << std::is_convertible<int,float>::value << std::endl;
std::cout << "int = >const int: " << std::is_convertible<int,const int>::value << std::endl;
std::cout << "A => B: " << std::is_convertible<A,B>::value << std::endl;
std::cout << "B => A: " << std::is_convertible<B,A>::value << std::endl;
return 0;
}
Output:
|
is_copy_constructible
是否拥有拷贝构造函数
-------------------------------------------------------------------------------------------------------------------------------------------------
以上内容为本人学习摘录,来源多为网上搜索所得,如您认为侵犯您的版权,请留言告知,不胜感激。