通常,可以使用模板技术实现典型的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
?
例如,其中一个条件是它继承自单个类。 这似乎无法在编译时确定。
答案 0 :(得分:4)
不,std::is_standard_layout
不是没有编译器内在函数就能实现的东西。正如您正确指出的那样,它需要的信息比C ++类型系统所能表达的信息要多。