我想使用 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") };
你知道如何做到这一点吗?甚至可能吗?我知道我需要使用 TMP 和递归来建立重复字符串的列表,并最终通过常量(例如,枚举)以某种方式访问它。但似乎我什至不能像这样嵌套初始化列表。