2012-08-12 25 views
5

¿Cuándo podemos esperar soporte para el standard type properties en g ++? libstdC++ proporciona soporte para la mayoría de las propiedades de tipo, y algunas requieren soporte de special GNU extensions. Sin embargo, sería bueno tener soporte completo para <type_traits>, y me pregunto cuándo será eso. Intenté consultar la lista de correo libstdC++, pero desafortunadamente no recibí respuesta.Compatibilidad con propiedades de tipo en g ++

Si usted se está preguntando qué propiedades de tipo carecen de apoyo, aquí están algunos de ellos:

Missing 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

Fuente: búsqueda de propiedades "Tipo" here.

Gracias por su ayuda!

+0

¿Qué versión de gcc/libstdC++ está utilizando? ¿Qué rasgos no están implementados todavía? Tenga en cuenta que algunos de ellos siempre requerirán compatibilidad con el compilador; no hay forma de implementar algunos de ellos únicamente en una biblioteca. –

+0

g ++ - 4.7.1 <3 - la última versión. Edité la pregunta para incluir algunas de las propiedades faltantes. –

+0

Desearía saber si alguien estaba trabajando en eso. Tronco de todavía se ve como esto: /// is_trivially_constructible (aún no implementada) /// is_trivially_default_constructible (aún no implementada) /// is_trivially_copy_constructible (aún no implementada) /// is_trivially_move_constructible (aún no implementada) /// is_trivially_assignable (aún no implementada) /// is_trivially_copy_assignable (aún no implementada) /// is_trivially_move_assignable (aún no implementada) – dans3itz

Respuesta

2

Son parte de la biblioteca estándar, por lo que son proporcionados por libstdC++, no por el front-end del compilador, y hay soporte para la mayoría en libstdC++.

Los pocos que faltan se añadieron tarde en el proceso C++ 0x por N3142 pero libstdC++ todavía proporciona las formas más antiguas tales como has_trivial_default_constructor en lugar de is_trivially_default_constructible.

En cuanto a cuándo, "depende". Ver http://gcc.gnu.org/ml/libstdc++/2012-08/msg00037.html y las siguientes respuestas.

+0

Continuando con esto un poco. ¿Esto significa que tendremos que esperar a GCC 5? https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64195#c1 – ThomasMcLeod

+0

Sí, así es. Ahora están en el baúl de subversión de GCC, que será GCC 5 –

Cuestiones relacionadas