2012-08-12 92 views
5

我们何时能够在g ++中支持standard type properties? libstdC++提供对大多数类型属性的支持,其中一些需要special GNU extensions的支持。但是,完全支持<type_traits>会很好,我想知道这是什么时候。我试着询问libstdC++邮件列表,但不幸的是没有收到任何回应。支持g ++中的类型属性

如果你想知道类型的属性缺乏支持,这,这里是其中的一些:

缺少is_trivially_copyable,is_assignable,is_copy_assignable, is_move_assignable,is_trivially_constructible, is_trivially_default_constructible,is_trivially_copy_constructible, is_trivially_move_constructible,is_trivially_assignable, is_trivially_default_assignable,is_trivially_copy_assignable, is_trivially_move_assignable,is_trivially_destructible, is_nothrow_assignable,is_nothrow_copy_assignable, is_nothrow_move_assignable,is_nothrow_destructible

来源:搜索 “类型属性” here

感谢您的帮助!

+0

你使用的是什么版本的gcc/libstdC++?哪些特征尚未实现?请注意,其中一些将始终需要编译器支持 - 无法单独在库中实现其中的一部分。 – 2012-08-12 05:18:52

+0

g ++ - 4.7.1 <3 - 最新版本。我编辑了这个问题以包含一些缺失的属性。 – 2012-08-12 05:19:20

+0

希望我知道是否有人正在为此工作。树干的仍然是这样的:/// is_trivially_constructible(仍然未实现) /// is_trivially_default_constructible(仍然未实现) /// is_trivially_copy_constructible(仍然未实现) /// is_trivially_move_constructible(仍然未实现) /// is_trivially_assignable (仍然未实现) /// is_trivially_copy_assignable(仍然未实现) /// is_trivially_move_assignable(仍然未实现) – dans3itz 2012-08-12 06:27:46

回答

2

它们是标准库的一部分,所以它们由libstdC++提供,而不是编译器前端提供,并且支持libstdC++中的大多数。

缺少的几个在C++ 0x过程后期被添加了N3142,但是libstdC++仍然提供了诸如has_trivial_default_constructor而不是is_trivially_default_constructible的较早表单。

至于什么时候,“这取决于”。见http://gcc.gnu.org/ml/libstdc++/2012-08/msg00037.html和以下回复。

+0

继续了这一点。这是否意味着我们需要等待GCC 5? https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64195#c1 – ThomasMcLeod 2014-12-29 15:28:20

+0

是的,没错。他们现在在海湾合作委员会的颠覆中心,这将是GCC 5 – 2014-12-30 19:42:37