is_standard_layout是如何实现的?

时间:2017-10-25 21:02:22

标签: c++11 typetraits

通常,可以使用模板技术实现典型的type_traits

但是,我并没有想到std::is_standard_layout如何在这些条款中实施。 http://en.cppreference.com/w/cpp/types/is_standard_layout

当我检查gcc标准库时,我发现它是以__is_standard_layout(T)实现的,我在其他地方找不到它。这是一个编译器魔术函数吗?

是否可以明确实施std::is_standard_layout

例如,其中一个条件是它继承自单个类。 这似乎无法在编译时确定。

1 个答案:

答案 0 :(得分:4)

不,std::is_standard_layout不是没有编译器内在函数就能实现的东西。正如您正确指出的那样,它需要的信息比C ++类型系统所能表达的信息要多。