class C
{
public:
C() : arr({1,2,3}) //doesn't compile
{}
/*
C() : arr{1,2,3} //doesn't compile either
{}
*/
private:
int arr[3];
};
그 이유는 배열이 =
구문으로 만 초기화 될 수 있다는 것입니다.
int arr[3] = {1,3,4};
질문
- 내가 원하는 일을 어떻게 할 수 있습니까 (즉, 생성자에서 배열을 초기화 합니다 (본문에 요소를 할당하지 않음)). 가능할까요?
- C ++ 03 표준은 ctor 이니셜 라이저에서 집합체 (배열 포함)를 초기화하는 것에 대해 특별한 언급이 있습니까? 아니면 위 코드의 무효는 다른 규칙의 결과입니까?
- C ++ 0x 이니셜 라이저 목록이 문제를 해결합니까?
추신 : 벡터, boost :: arrays 및 내가 잘 알고있는 배열에 대한 우월성은 언급하지 마십시오.