Template Variadic C ++ 11: um exemplo útil real

Uma maneira comum de dividir uma string pode parecer como: std::vector<std::string> v = split("::a,,1::3.14 ", " :,").

Usando o modelo Variadic do C ++ 11, criei uma maneira inteligente de dividir strings. A essência relativa está aqui .

A ideia é passar uma lista de variáveis, de qualquer tipo, como argumento da splitfunção para armazenar em cada variável específica da lista o valor relativo selecionado na string.

Um exemplo poderia ser:

std::string first;
int second;
float third;

split
(" STRING:: 123 --:: 3.14;;", " -:;", first, second, third);
/* Optional : auto v = split(" STRING:: 123 --:: 3.14;;", " -:;", first, second, third); */

assert(first == "STRING");
//assert(v[0] == first);

assert(second == 123);
//assert(v[1] == "123");

assert(third == 3.14f);
//assert(v[2] == "3.14");

Aproveitar!