2012-08-12 16 views
5

Kiedy możemy spodziewać się wsparcia dla standard type properties w g ++? libstdC++ zapewnia obsługę większości właściwości typów, a niektóre wymagają wsparcia od special GNU extensions. Jednak byłoby miło mieć pełne wsparcie dla <type_traits> i zastanawiam się, kiedy to nastąpi. Próbowałem dociekać listy dyskusyjnej libstdC++, ale niestety nie otrzymałem odpowiedzi.Obsługa właściwości typu w g ++

Jeśli zastanawiasz się, które właściwości Typ brakuje wsparcia, oto niektóre z nich:

Brakujące 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_assable, is_trivially_destructible, is_nothrow_assignable, is_nothrow_copy_assignable, is_nothrow_move_assignable, is_nothrow_destructible

Źródło: Szukaj "właściwości typu" here.

Dzięki za pomoc!

+0

Jakiej wersji gcc/libstdC++ używasz? Jakie cechy nie są jeszcze wdrożone? Zauważ, że niektóre z nich zawsze będą wymagać wsparcia dla kompilatora - nie ma sposobu na wdrożenie niektórych z nich wyłącznie w bibliotece. –

+0

g ++ - 4.7.1 <3 - najnowsze wydanie. Zmieniłem to pytanie, dodając niektóre z brakujących właściwości. –

+0

Chciałbym wiedzieć, czy ktoś nad tym pracował. Bagażnik wciąż wygląda następująco: /// is_trivially_constructible (jeszcze niewykonane) /// is_trivially_default_constructible (jeszcze niewykonane) /// is_trivially_copy_constructible (jeszcze niewykonane) /// is_trivially_move_constructible (jeszcze niewykonane) /// is_trivially_assignable (jeszcze niewykonane) /// is_trivially_copy_assignable (jeszcze niewykonane) /// is_trivially_move_assignable (jeszcze niewykonane) – dans3itz

Odpowiedz

2

Są one częścią standardowej biblioteki, więc są dostarczane przez libstdC++, a nie przez front-end kompilatora, i jest wsparcie dla większości w libstdC++.

Nieliczni że brakuje dodano późno w procesie C++ 0x przez N3142 ale libstdC++ zapewnia jeszcze starsze formy, takie jak has_trivial_default_constructor zamiast is_trivially_default_constructible.

Co do tego, kiedy "to zależy". Zobacz http://gcc.gnu.org/ml/libstdc++/2012-08/msg00037.html i następujące odpowiedzi.

+0

Dalsze informacje na ten temat. Czy to oznacza, że ​​będziemy musieli poczekać na GCC 5? https://gc.gnu.org/bugzilla/show_bug.cgi?id=64195#c1 – ThomasMcLeod

+0

Tak, zgadza się. Są teraz w bagażniku subwoofera GCC, którym będzie GCC 5 –

Powiązane problemy