Я хотел бы использовать новую функцию списка инициализаторов 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 и рекурсию для создания списка повторяющихся строк и, наконец, получить к нему доступ через константу (например, enum). Но, похоже, я даже не могу вложить список инициализаторов таким образом.