C++ 0x元组没有迭代器,对吗?

tow*_*owi 5 c++ iterator tuples c++11

查看标准N3291我没有找到任何tuple支持begin()和参考end().但是当我多年前看到我的笔记时,我似乎已经记下了我需要稍后再研究一下.我们在这里.

我找不到任何痕迹tuple<...>.begin()tuple<...>.end()在当前的C++ 0x标准中,这是正确的吗?将迭代器的元组传递给算法是不可能的,也不能将for它遍在它上面,对吧?

tuple<int,string,double> val;
for(auto a : val) cerr << val;     // very wrong!
Run Code Online (Sandbox Code Playgroud)

这当然是胡说八道,因为应该auto是什么?

我需要确认我的笔记包含一个错误,并且没有办法获得元组元素的迭代器.或者标准讨论中可能有一条废弃的道路?

注意:我知道可以使用TMPVariadic模板来实现do-for-all-element-of-a-tuple,但我的问题实际上是关于迭代器.

ild*_*arn 7

提升.Fusion具有可迭代的元组 - boost::fusion::vector<>以及元组的许多迭代,查询和转换算法.

它也有代码,以适应boost::tuple<>与这些迭代器和算法的使用 ; 您可以使用该代码并修改它以使用它std::tuple<>.