我想使用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和递归来构建重复字符串列表,最后通过常量(例如枚举)以某种方式访问它。但似乎我甚至无法像这样嵌套初始化器列表。