我有一个关于POD-ness的问题.我预计如果B是非POD而B是A中的成员,那么A将是非POD.但是,下面的代码示例输出"10",因此B被正确地视为非POD但A是.
struct A
{
int i;
struct B
{
std::string s;
};
};
std::cout << std::is_pod<A>::value;
std::cout << std::is_pod<A::B>::value;
Run Code Online (Sandbox Code Playgroud)
这是GCC中的错误吗?我正在使用"c ++(GCC)7.3.1 20180312".我没有看到这种行为的意义.假设我想优化缓冲区分配并使用POD检查以确定是否必须使用new或者可以将malloc/realloc用于特定类型.使用malloc为A分配存储是完全错误的.最好的问候