'A Tour of C++'을 거쳤으며 Bjarne는 생성자의 멤버 초기화에서 C++ 11 이니셜 라이저 목록 기능을 사용합니다 (예 : 중괄호 사용).) :멤버 초기화 목록 (C++ 11)의 이니셜 라이저 목록 구문
A a;
B b;
Foo(Bar bar):
a{bar.a}, b{bar.b}
{}
그러나 이것은 C++ 11 이전에는 컴파일되지 않습니다.
Foo(Bar bar):
a(bar.a), b(bar.b)
{}
그래서 차이점은 무엇입니까 때 하나가 다른 하나보다 선호한다 : 기존 멤버 초기화 목록의 차이 (사용 둥근 괄호) 란 무엇입니까?
'A a {bar.a};와'A a (bar.a);와 동일합니다. – chris
Bjarne는 둥근 브래킷 초기화 팬이 전부입니다. – AndyG
중괄호는 "가장 애매한 구문 분석"문제를 피하지만, std :: vector를 사용하여 답안에서 지적되는 성가신 문제를 소개합니다. http://en.wikipedia.org/wiki/C%2B%2B11#Uniform_initialization – amdn