美文网首页
Plain Old Data类型

Plain Old Data类型

作者: yangxingpping | 来源:发表于2015-06-30 23:50 被阅读0次

1

c++中将POD分为两个概念集(1,trival 平凡的) + (2,standard layout标准布局)

1,trival

 1)trival constructor and destructor (do nothing...)   trival copy constructor, trival move constructor, trival assignment operator, trival move operator;2)不能包含虚函数和虚基类。可以使用c++11 template<typename T> struct std::is_trival来对类型是否为trival进行判断。

以上函数使用编译器默认的实现的话就有trival属性,如果自己写的实现的话需要在后面添加=default来重新把它声明为trival.例如下面代码

struct Demo{int m; Demo(int x):m(x){}  Demo()=default;} 用is_trival<Demo>::value返回1.

2,stand layout

1),所有非静态成员具有相同的访问权限(private...);2)类中第一个非静态成员的类型与基类不同

3)类有继承时:两个条件或操作为真则为真。

---)派生类中有非静态成员,且只有一个仅包含静态成员的基类

---)基类有非静态成员,而派生类没有非静态成员。

4)没有虚函数和虚基类

5)所有非静态数据成员均符合标准布局类型,基类也符合。

同样,stand layout可以使用is_standard_layout<T>::value进行判断。


相关文章

  • Plain Old Data类型

    1 c++中将POD分为两个概念集(1,trival 平凡的) + (2,standard layout标准布局)...

  • C++ POD types

    Plain Old Data POD是Plain Old Data的缩写,C++ POD types的对象需要满足...

  • POD

    POD是英文中Plain Old Data的缩写。Plianb表示了POD是个普通类型。Old则体现了其与C的兼容...

  • [Android][DataBinding][DataBindi

    1.数据对象(Data Object) 任何Plain old Java object(POJO)可用于Data ...

  • C++中的POD类型

    C++ POD类型 背景 POD(Plain Old Data)指的是C++定义的和C相兼容的数据结构。 几乎所有...

  • [C++11阅读][2-3-3]POD类型(上)

    POD是Plain Old Data的缩写。POD类型是C++11中其他概念的基础,在后续会看到各处的应用。Pla...

  • 深入理解C++11 3.6 POD类型

    POD全程Plain Old Data。C++11将POD划分为两个基本概念的集合,即:平凡的(trivial)和...

  • [c/c++]trivial/POD类型和standard la

    什么是trivial/POD类型? C++20标准之前,POD类型指符合C的平凡旧数据结构(Plain Old D...

  • mojo是什么?

    What is a Mojo? A mojo is a Maven plain Old Java Object. ...

  • 表视图

    UITableView 有两种类型1.平铺型(Plain)2.分组型(Grouped)常用属性:id data...

网友评论

      本文标题:Plain Old Data类型

      本文链接:https://www.haomeiwen.com/subject/mvaeqttx.html