我想使用C++ 0x新的初始化列表功能来初始化std :: vector,其中包含我正在处理的新API的编译时定义的项目数.像这样的东西:
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") };
Run Code Online (Sandbox Code Playgroud)
你知道怎么做到这一点吗?它甚至可能吗?我知道我将需要使用TMP和递归来构建重复字符串列表,并最终通过常量(例如,枚举)以某种方式访问它.但似乎我甚至无法像这样嵌套初始化列表.