C++ 0x 새 초기화 프로그램 목록 기능을 사용하여 현재 작업중인 새 API에 대해 컴파일 타임에 정의 된 항목 수를 사용하여 std :: vector를 초기화하고 싶습니다. 다음과 같이 입력하십시오 :C++ 0x 중첩 된 이니셜 라이저 목록
template<int n>
std::initializer_list<std::string> duplicate(std::string s) {
// return s duplicated n times
return { s, s, s };
}
std::vector<std::string> v = { "foo", duplicate<3>("bar") };
이것을 수행하는 방법에 대해 알고 있습니까? 심지어 가능할까요? 나는 TMP와 재귀를 사용하여 복제 된 문자열의 목록을 만들고 마지막으로 상수 (예 : 열거 형)를 통해 액세스 할 필요가 있음을 알고 있습니다. 하지만 이니셜 라이저 목록을 이와 같이 중첩시킬 수없는 것 같습니다.