eba*_*und 7 layout pod type-traits c++11
我尝试用其他类型谓词来理解POD概念.
是否有完整的类型谓词列表std::is_pod<>?
这是我目前的尝试不成立(VS2013).
struct C { // Does not assert as POD class
    int value;
    C() = default;
    C(int v) : value(v) { // Offends is_pod<>
    }
};
static_assert(std::is_trivial<C>::value, ""); // Assert OK
static_assert(std::is_trivially_copyable<C>::value, ""); // Assert OK
static_assert(std::is_standard_layout<C>::value, ""); // Assert OK
static_assert(std::is_pod<C>::value, "");  // Assert fails. Why?
is_trivial和 的组合is_standard_layout等于is_pod,对非静态成员的一些其他限制进行取模,这些限制未被 中的类型特征之一捕获<type_traits>。
标准草案的相关引用:
[班级]
10 POD 结构是一个非联合类,它既是普通类 又是标准布局类,并且没有非 POD 结构、非 POD 联合(或此类类型的数组)类型的非静态数据成员。类似地,POD 联合是一个既是普通类又是标准布局类的联合,并且不具有非 POD 结构、非 POD 联合(或此类类型的数组)类型的非静态数据成员。POD 类是 POD 结构或 POD 联合的类。
| 归档时间: | 
 | 
| 查看次数: | 198 次 | 
| 最近记录: |