Concatenação de cadeia de caracteres de modelo C ++

Estou tentando definir um modelo variadic como este:

typedef const char CCTYPE[];
template<CCTYPE X, CCTYPE... P> struct StringConcat { ... };

para que eu pudesse escrever sth como:

char foo[] = "foo"; char bar[] = "bar";
std::cout << StringConcat<foo, bar>;

e imprimiufoobar. Como posso fazer isso, se possível no C ++ 0x?

meu verdadeiro interesse é resolverFizzBuzz problema ao usar modelos c ++, encontrei uma soluçãoaqui para converter um int para char [] usando modelos.

questionAnswers(5)

yourAnswerToTheQuestion