초기화 목록을 사용하여 여러 가지 방법으로 std::array를 생성할 수 있습니다. 그러나 GCC 4.6.1에서는 이 작업을 시도할 때 오류가 발생할 수 있습니다.
초기화 목록을 사용하여 std::array를 생성하는 구문은 다음과 같습니다.
<code class="cpp">std::array<T, size> array = { { value1, value2, ..., valueN } };</code>
여기서 T는 배열의 요소 유형이고, size는 배열의 크기이며, value1~valueN은 배열의 초기 값입니다.
std::array는 이를 허용하는 집계 구조체입니다. 집계 초기화됩니다. 구조체 내부의 배열을 집계 초기화하려면 추가 중괄호 세트를 사용하세요.
<code class="cpp">std::array<std::string, 2> strings = {{ "a", "b" }};</code>
이 구문은 GCC 4.6.1에서 문제를 일으킬 수 있는 초기화 목록을 사용하는 생성자를 방지합니다.
C 11 표준에서는 집계 초기화에서 추가 중괄호를 생략할 수 있다고 제안합니다. 따라서 GCC 4.6.1이 추가 중괄호 없이 std::array에 대한 초기화 목록을 컴파일할 수 없는 것은 컴파일러 버그일 가능성이 높습니다.
위 내용은 GCC 4.6.1이 std::array에 대한 초기화 목록 때문에 어려움을 겪는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!