typetraits - c++11 type_traits: different result in INTEL 2013 and GCC 4.7.2 -
for following class, intel 2013 (update 3) , gcc 4.7.2 give different type_traits results. 1 right?
#include <iostream> #include <type_traits> using namespace std; class { public: a() = default; private: double t_; }; int main() { cout << boolalpha; cout << "is_trivial<a> : " << is_trivial<a>::value << endl; cout << "is_compound<a> : " << is_compound<a>::value << endl; cout << "is_pod<a> : " << is_pod<a>::value << endl; cout << "is_standard_layout<a> : " << is_standard_layout<a>::value << endl; cout << "is_literal_type<a> : " << is_literal_type<a>::value << endl; return 0; } intel output:
is_trivial<a> : true is_compound<a> : true is_pod<a> : false is_standard_layout<a> : true is_literal_type<a> : false gcc output:
is_trivial<a> : true is_compound<a> : true is_pod<a> : true is_standard_layout<a> : true is_literal_type<a> : true
i gcc correct. is_pod true if it's both is_trivial , is_standard_layout: http://en.cppreference.com/w/cpp/types/is_pod . intel compiler doesn't comply this. is_literal_type should true since conditions seem valid a: http://en.cppreference.com/w/cpp/types/is_literal_type
Comments
Post a Comment