standard-layout

    6热度

    1回答

    我正在写一门课,假设Are enumeration types layout compatible with their underlying type?的答案为“是”,但版式兼容struct kevent,但使用enum classES为filter,flags等与相关字段的适当底层类型。它也是标准布局(所有字段都是private,它们都是标准布局,没有virtual成员,没有基类)。从我读到的

    4热度

    3回答

    C++ 11标准保证字节对每个字节的副本始终对POD类型有效。但是,某些微不足道的类型呢? 下面是一个例子: struct trivial { int x; int y; trivial(int i) : x(2 * i) { std::cout << "Constructed." << std::endl; } }; 如果我要复制这个结构,字节对字节,是保证

    4热度

    1回答

    一段代码胜过千言万语。 #include <iostream> #include <type_traits> using namespace std; struct A { int a; }; struct B : A { int b; }; int main() { cout << is_standard_layout<B>::value

    3热度

    1回答

    我想使用模板来简化非平凡类型的工会的建设。下面,似乎在实践中“工作”,但在技术上是不合法的规范: template<typename T> struct union_entry { void (*destructor_)(void *); // how to destroy type T when active T value_; }; union U { uni

    0热度

    1回答

    我只是用G ++打过来,我发现 #include <type_traits> class Foo { public: int x; public: char y; public: double z; }; static_assert(std::is_standard_layout<Foo>::value, "Foo is not standard layout"); int m

    5热度

    2回答

    我发现一些线程暗示这不能完成,但没有一个使用完全相同的运算符和条件组合,所以我想问一些更具体的问题。希望这意味着对某个人来说这是一个快速而简单的答案......这种或那种方式! 考虑一个例子代理类,做存储的较大块中管理的值 - 在这个过于简单,但代表性的例子: class SomeProxyThing { std::uint32_t storage; public: ope

    7热度

    1回答

    根据C++标准: 标准布局类是一类: 都具有一个类型的没有非静态数据成员是非准则性布局类(或这种类型的数组)或引用。 什么属性引用的(一个或多个)防止参照成员的类被包含在一个标准的布局类的定义是什么?

    2热度

    1回答

    首先,这是一个理智的检查问题,以便得到某些人更好的认可 - 深入了解语言标准的深度。 比方说,我有以下几种类型(虽然我离开了任何非构造函数和非分配成员函数): template<typename E> struct half_expr { }; class half : public half_expr<half> { public: half(); explici

    1热度

    1回答

    我读了一个关于POD,Trivial,Standard-layout类的nice article。但我有一个关于标准布局类的规则的问题: 在大多数派生类中最多有一个非静态数据成员,最多只有一个基类有非静态数据成员,或者没有基类与非静态数据成员 我写了一个源代码: #include <iostream> struct A { int a; }; struct B { i

    15热度

    1回答

    我所经历的大文章上C++ POD, Trivial and Standard Layout classes 一个特性我还没有清楚地理解有关标准布局如下: - A standard layout has no base classes of the same type as the first non-static data member 所以下面将不会是一个标准的布局,因为它有第一构