You could use boost::fusion if you need to call the same templated function for every object in the tuple. E.g.
template<typename T>
void invoke_operation_1(T& obj)
{
std::cout << obj << std::endl;
}
struct executor
{
template<typename T>
void operator()(T& t) const
{
invoke_operation_1(t);
}
};
typedef boost::tuple< bool
, signed char
, signed short
, signed int
, signed long long
, unsigned char
, unsigned short
, unsigned int
, unsigned long long > integral_types;
int main()
{
integral_types t(true, 0, 1, 2, 3, 4, 5, 6, 7);
boost::fusion::for_each(t, executor());
return 0;
}