c – 如何迭代TR1元组

前端之家收集整理的这篇文章主要介绍了c – 如何迭代TR1元组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
卡在TR1中,对于测试程序,我需要对特定类型的多个对象执行某些操作.我有几个元组类型定义,如下所示:
typedef std::tr1::tuple< bool,signed char,signed short,signed int,signed long long,unsigned char,unsigned short,unsigned int,unsigned long long >  integral_types;

从每个元组类型创建一个对象.然后我有类似这样的功能模板:

template<typename T>
void invoke_operation_1(T& obj);

需要为元组对象中的所有对象调用它们.

我如何在C 03中做到这一点?

解决方法@H_301_14@
如果需要为元组中的每个对象调用相同的模板化函数,则可以使用 boost::fusion.例如.
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,unsigned long long >  integral_types;
int main()
{
    integral_types t(true,1,2,3,4,5,6,7);
    boost::fusion::for_each(t,executor());
    return 0;
}

猜你在找的C&C++相关文章