#include <iostream>
struct A {
const int test_;
};
static_assert(std::is_pod<A>::value, "must be POD type");
int main()
{
std::cout<<"Hello World";
return 0;
}
On Clang and GCC std::is_pod<A>::value is true, while on ICC and MSVC it is false.
If const int test_; is replaced with either int test_; or const int* test_ then it also passes on ICC and MSVC.
What does the standard say?