[英]Why is this struct not standard-layout?
一段代碼值得千言萬語。
#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 << endl; // output false! WHY?
return 0;
}
從標准布局類的定義(§9類,第7段)
[...]
*要么在大多數派生類中沒有非靜態數據成員,要么最多只有一個具有非靜態數據成員的基類,或者沒有帶有非靜態數據成員的基類,並且
[...]
在您的情況下,派生程度最高的類及其基類都具有非靜態數據成員。 所以這不是標准布局。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.