2013-07-03 12 views
17

Clang 3.3 obsługuje niektóre funkcje C++ 14, takie jak inicjatory i agregatory członków. Jednak nie mogę skompilować tego kodu nawet z przełącznikiem -std=c++11.Obsługa Clang 3.3 i C++ 14?

struct A 
{ 
    struct X { int a, b; }; 
    X x = { 1, 2 }; 
    int n; 
}; 

A a = {{10}, 5}; 

Co robię źle?

+3

działa na mnie z '-std = C++ 11' w szczękiem ** 3.2 ** oraz gcc 4.7. – kennytm

+0

Inicjatory członków w klasie są funkcją C++ 11, nie? –

+0

Robię "A a = {{10}, 5};" i nie działa. Chcę korzystać z tej funkcji C++ 14. –

Odpowiedz

30

Post-C++ 11 Funkcje językowe w Clang 3.3 są włączone z tego przełącznika wiersza polecenia:

-std = C++ 1r

Zapoznaj się z dołu tej strony http://clang.llvm.org/cxx_status.html dla listy aktualnie obsługiwanych funkcji po C++ 11 w Clang 3.3.

Również tutaj można znaleźć dyskusje na temat nadchodzących C++14 i użytkowania przykładów: http://www.meetingcpp.com/index.php/br/items/a-look-at-cpp14-papers-part-1.html

+0

Jaką funkcję C++ 14 stosuje ten przykład? – balki

+0

@balki: Inicjalizacja agregacji: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3605.html –