클래스 std::array
은 집합입니다. 이 진술 내용 :
std::array<char, strlen("hello world!") + 1> s = {"hello world!"};
목록 초기화가 사용됩니다. 클래스 std::array
의 인스턴스화의 첫 번째 요소는 문자 배열이므로 문자열 리터럴로 초기화 될 수 있습니다. 차례로 문자 배열이 집계하기 때문에
std::array<char, sizeof("hello world!")> s = {"hello world!"};
은 또한 당신이
std::array<char, sizeof("hello world!")> s = { { "hello world!" } };
를 작성할 수
대신 기능 strlen
의 sizeof
연산자를 사용하는 것이 더 정확하게 될 것입니다. C++ 표준
8.5.2 문자 배열 [dcl.init.string]
좁은 1 문자 입력 (3.9.1) char16_t 배열 char32_t 배열의 배열에 따르면
또는 wchar_t 배열은 char16_t 문자열 리터럴, char32_t 문자열 리터럴 또는 넓은 문자열 리터럴 또는 적절히 유형화 된 문자열 리터럴 (중괄호 (2.14.5)로 묶음)으로 좁은 문자열 리터럴로 초기화 할 수 있습니다. 문자열 리터럴 값의 연속 문자는 배열의 요소를 초기화합니다.
[예 : 숯 MSG [] = "라인의 S % \ 없음에 구문 오류";