首页 文章
  • 470 votes
     answers
     views

    什么是聚合和POD以及它们如何/为何特殊?

    这FAQ是关于聚合和POD的,涵盖以下材料: Aggregates 是什么? 什么是 POD s(普通旧数据)? 他们有什么关系? 他们如何以及为何特别? C 11有什么变化?
  • 37 votes
     answers
     views

    为什么C 11的POD“标准布局”定义是这样的?

    我正在调查C++11中新的,轻松的POD定义(第9.7节) 标准布局类是一个类:没有非标准布局类(或此类类型的数组)或引用的非静态数据成员,没有虚函数(10.3)且没有虚基类(10.1) ),对所有非静态数据成员具有相同的访问控制(第11条),没有非标准布局基类,在最派生类中没有非静态数据成员,并且最多只有一个非基类-static数据成员,或者没有具有非静态数据成员的基类,并且没有与第一个非静态...
  • 2 votes
     answers
     views

    标准布局和不可复制的属性

    C 11,§9/ 7: 标准布局类是一个类:没有非标准布局类(或此类类型的数组)或引用的非静态数据成员,没有虚函数,没有虚基类,具有相同的访问权限对所有非静态数据成员的控制,没有非标准布局基类,在最派生类中没有非静态数据成员,最多只有一个具有非静态数据成员的基类,或者没有基类使用非静态数据成员,并且没有与第一个非静态数据成员相同类型的基类 . 那么,有没有办法让标准布局的类不可复制?如果有,怎...
  • 1 votes
     answers
     views

    为什么拥有不同访问控制成员的工会不是标准布局?

    §9.0 7.类S是标准布局类,如果它:(7.3)对所有非静态数据成员具有相同的访问控制(第11条),8标准布局结构是用以下定义的标准布局类 . class-key struct或class-key类 . 标准布局联合是使用类 - 键联合定义的标准布局类 . AFAICT,§9.0.7.3因§9.2.13而存在 13具有相同访问控制(第11条)的(非联合)类的非静态数据成员被分配,以便后面...
  • 7 votes
     answers
     views

    C标准布局和参考

    根据C标准: 标准布局类是一个类: - 没有类型为非标准布局类(或此类类型的数组)或引用的非静态数据成员 . 引用的哪些属性会阻止具有引用成员的类包含在标准布局类的定义中?
  • 1 votes
     answers
     views

    C - 标准布局[重复]

    这个问题在这里已有答案: Why is C++11's POD “standard layout” definition the way it is? 6个答案 根据目前的C标准草案,标准布局类 要么在大多数派生类中没有非静态数据成员,要么最多只有一个具有非静态数据成员的基类,或者没有带有非静态数据成员的基类 我还没有看到任何可以通过此限制更有效的实现 . 它为什么存在(除了让事情变得更困...
  • 1 votes
     answers
     views

    为什么在继承的标准布局规则中有非静态成员的规则?

    我读了很多关于POD,Trivial,标准布局类的nice article . 但我对标准布局类的规则有疑问: 要么在大多数派生类中没有非静态数据成员,要么最多只有一个具有非静态数据成员的基类,或者没有带有非静态数据成员的基类 我写了一个源代码: #include <iostream> struct A { int a; }; struct B { int b;...
  • 1 votes
     answers
     views

    ABI兼容的shared_ptr实现

    我正在研究一种COM风格的编译器交叉兼容插件框架,它依赖于兼容的虚拟表实现来实现ABI兼容性 . 我定义的接口只包含纯虚拟成员函数和重写的删除操作符,以便将破坏通道到实现位置 . 这适用于extern“C”工厂函数,它实例化接口的插件实现并返回接口类型指针 . 但是,我想知道智能指针是不是更现代的方式来管理插件对象的生命周期 . 我想我实际上设法创建了一个标准布局shared_ptr / weak...

热门问题