c++ - 用异构 boost::fusion vector 类型数据填充 std::vector

标签 c++ boost boost-fusion

我是 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/

相关文章:

c++ - C++ 奇怪行为中的 Lambda 函数

c++ - 与 self 的竞争条件

c++ - 如何返回 iterator_range

c++ - 是否可以反向使用 boost fusion map,也就是 key 是 567,value 是 type ?

c++ - Boost.Fusion 运行时开关

c++ - BOOST_FUSION_ADAPT_STRUCT 没有采用正确数量的参数

c++ - 在 C++ 中仅使用堆栈的后果

c++ - EXEC SQL LOB WRITE APPEND 与轮询(先写、下写、最后写)

c++ - 字符串没有针对字符串文字进行足够优化

c++ - boost 图 : Are add_edge and remove_edge thread safe?