如何识别 boost::fusion vector 中的类型?

例如

fusion::vector<int, double, string> v;

然后让我将 v[0] 识别为 int 类型,将 v[1] 识别为 double 类型,将 v[2] 识别为 string 类型。

谢谢。

最佳答案

为了从 boost::fusion::vector 中提取元素,您需要使用 boost::fusion::at_c ,如下所示:

boost::fusion::vector<int, std::string> v(1, "hello");
std::cout << boost::fusion::at_c<0>(v) << std::endl; // prints 1

位置 N 处的类型为:
boost::fusion::result_of::at_c<boost::fusion::vector<int, std::string>, 1>::type

关于c++ - 如何识别boost fusion vector 中的类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13100982/

10-15 01:08