Variadic templates

c++, c++11, templates

Solution

- Type-safe printf

- Forwarding of arbitrary many constructor arguments in factory methods

- Having arbitrary base-classes allows for putting and removing useful policies.

- Initializing by moving heterogenous typed objects directly into a container by having a variadic template'd constructor.

- Having a literal operator that can calculate a value for a user defined literal (like "10110b").

Sample to 3:

template<typename... T> struct flexible : T... { flexible(): T()... { } };

Sample to 4:

struct my_container { template<typename... T> my_container(T&&... t) { } };
my_container c = { a, b, c };

Sample to 5:

template<char... digits>
int operator "" b() { return convert<digits...>::value; }

See this example code: here

Problem

C++0x will allow template to take an arbitrary number of arguments. What is the best use of this feature other than implementing tuples ?

Original source

Related problems