기존에 우리는 배열을 선언할때
int arr[5] = {1,2,3,4,5};
이렇게 선언이 가능했다.
그럼, class도 literal하게 선언이 가능할까?
해당사항은 c++98 컴파일러에서는 불가능 했는데,
c++11부터! literal class로 선언 가능해 졌다.
#include <iostream> class A
} |
$ c++ -std=c+*98 main.cpp
main.cpp: In function ‘int main()’:
main.cpp:13:9: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
A a = A{ 1, 'a'};
^
c++98 컴파일러로 컴파일 하니 c++11 컴파일러로 하라고 친절하게 설명해 주었다. ㅋ
extended initializer lists only available with -std=c++11 or -std=gnu++11
$ c++ -std=c++11 main.cpp
$ a.out
a: 1 b: a
'Language > C++' 카테고리의 다른 글
생성자 내에서 동적할당을 한다면?? (0) | 2015.03.09 |
---|---|
[c++] 항상 헷갈리는 const 위치에 따른 쓰임새 차이 (const char , char const) (0) | 2015.02.17 |
C컴파일러와 달리 C++컴파일러에서 함수 오버로딩이 가능한 이유? (0) | 2014.11.24 |
[c++] 전역함수에 대한 friend선언 (0) | 2014.06.20 |
[c++] 함수선언 뒤 const (0) | 2014.06.20 |