概述
首先 std::is_trivila 定义
template< class T >
struct is_trivial;
结构成员函数: value
返回true,如果T 包含默认的构造函数。
其他情况下,返回false。
一种可能的实现方式::
template< class T >
struct is_trivial : std::integral_constant<
bool,
std::is_trivially_copyable<T>::value &&
std::is_trivially_default_constructible<T>::value
> {};
样例:
struct A {
A()= default;
int m;
};
struct B {
int m;
};
struct C{
C(){}
int m;
};
int main(int argc, char**argv)
{
std::cout << std::boolalpha;
std::cout << std::is_trivial<A>::value << 'n';
std::cout << std::is_trivial<B>::value << 'n';
std::cout << std::is_trivial<C>::value << 'n';
}
输出:
true
true
false
原文链接:https://blog.csdn.net/TH_NUM/article/details/95384976
最后
以上就是清秀短靴为你收集整理的c++11新特性std::is_trivial的全部内容,希望文章能够帮你解决c++11新特性std::is_trivial所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复