【发布时间】:2017-05-11 09:52:58
【问题描述】:
以这里为例:trivial vs. standard layout vs. POD
以下代码通过:
struct T {
public:
int i;
private:
int j;
};
static_assert(! std::is_standard_layout<T>::value, "");
但以下不是:
static_assert(! std::is_standard_layout<std::string>::value, "");
因此,如果类型不是标准布局所需要的一切,那么 std::string 怎么可能是一个呢?
【问题讨论】:
-
“所以如果一个类型不是标准布局所需要的一切” .. 如果需要什么?不是标准布局?
-
我认为标准不能保证这一点?
-
这是一个奇怪的问题,前提不充分。首先,您没有确定您发现关于
T的明显“简单”(“一切所需”),然后您没有解释为什么您认为std::string具有T的某些属性应该如此古怪没有。