我有以下问题:
template <int N, typename T>
/*what is the return type*/ nviewgetter( T const& t )
{
typename T::const_iterator it(t.begin());
typedef BOOST_TYPEOF_TPL(*it) etype;
typedef typename boost::fusion::result_of::as_nview<etype, N>::type netype;
std::vector<netype> r;
while(it!=t.end()){
r.push_back( boost::fusion::as_nview<N>(*it) );
it++;
}
//return r;
}
预期的是 T 是一个正向序列序列(例如 boost::fusion::vector),我想查看 T 的每个元素中的第 N 个元素。但是,我事先不知道 的类型boost::fusion::vector
,例如 boost::fusion::vector<int, double>
或boost::fusion::vector<int, double, std::string>
。在代码中我可以找出正确的类型,但我无法在函数声明中找出这一点。
谢谢 !
也欢迎任何有关代码改进的建议。:)