若T是简旧数据类型(PODType),即既是平凡又是标准布局,则提供等于true的成员常量value。对于任何其他类型,value为false。 若std::remove_all_extents_t<T>是不完整类型且非(可为 cv 限定的)void则行为未定义。 添加is_pod或is_pod_v(C++17 起)的特化的程序行为未定义。
std::is_pod 是一元类型特征 (UnaryTypeTrait) 。 如果T 是简旧数据(POD)类型,那么提供的成员常量 value 等于true。对于其它任何类型,value 等于false。 如果std::remove_all_extents_t<T> 是除了(可有 cv 限定的)void 以外的不完整类型,那么行为未定义。
若T 是简旧数据类型 (PODType) ,即既是平凡又是标准布局,则提供等于 true 的成员常量 value 。对于任何其他类型, value 为false。 若std::remove_all_extents_t<T> 是不完整类型且非(可为 cv 限定的) void 则行为未定义。 添加is_pod 或is_pod_v (C++17 起) 的特化的程序行为未定义。
#include <type_traits>structA{intm;};static_assert(std::is_pod_v<A>==true);classB:publicA{intm;};static_assert(std::is_pod_v<B>==false);structC{virtualvoidfoo();};static_assert(std::is_pod_v<C>==false);intmain(){}
is_array_v<> (C++17 起)is_assignable<> (C++11 起)is_assignable_v<> (C++17 起)is_base_of<> (C++11 起)is_base_of_v<> (C++17 起)is_bind_expression<> (C++11 起)is_bind_expression_v<> (C++17 起)is_bounded_array<> (C++20 起)is_bounded_array_v<> (C++20 起)is_class<>...
std::is_pod 当一个数据类型满足了”平凡的定义“和”标准布局“,我们则认为它是一个POD数据,非静态成员都是”平凡的“ 1.平凡的 2.平凡的 3.非静态成员“平凡的”
但是我得到了一个编译错误。我想要:您需要使用std::enable_if在SFINAE上下文中使用来自std::is_pod的...
is_final (C++14) is_abstract (C++11) is_aggregate (C++17) is_implicit_lifetime (C++23) is_trivial (C++11) is_trivially_copyable (C++11) is_standard_layout (C++11) is_literal_type (C++11)(until C++20*) is_pod (C++11)(deprecated in C++20) is_signed (C++11) is_unsigned (C++11...
只能有一个析构函数,不能重载。 如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数...
is_array<> (C++11 起) is_array_v<> (C++17 起) is_assignable<> (C++11 起) is_assignable_v<> (C++17 起) is_base_of<> (C++11 起) is_base_of_v<> (C++17 起) is_bind_expression<> (C++11 起) is_bind_expression_v<> (C++17 起) is_bounded_array<> (C++20 起) is_bounded...