我是 boost 和元编程的新手,所以我的问题是:
typedef fusion::vector<int, char, double, std::string> my_row;
typedef std::vector<my_row> my_vec;
my_row my_data = my_row(3,"f",2,"2");
my_vec t;
t.push_back(my_data); // this doesn't compile and gives error <C2039>
对于你们中的大多数人来说,这可能是一个非常愚蠢的问题,但为什么不能编译呢?我是否需要以某种方式将 my_row vector 转换为可以存储到普通 std::vector 中的东西?
也有人可以指点我一本关于元编程和 boost 的不错的介绍性书籍,以便我了解 boost 使用背后的心态和一些使用 boost 的编程示例吗?
我真的认为在线手册网站绝对是垃圾。至少对于那些对 C++ 和 STL 不是完全陌生的人来说,它看起来是这样,但在大量“struct”声明和“::”和“<>”使用中迷失了方向。总的来说,所有让新手难以使用和理解 boost 的东西。
最佳答案
"f"
是一个字符串,而不是一个 char
。请尝试使用 'f'
。
关于c++ - 用异构 boost::fusion vector 类型数据填充 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9332392/