我是提升和元编程的新手,所以我的问题是:
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 向量转换为可以存储到普通 std::vector 中的东西?
也有人可以向我指出一本关于元编程和提升的很好的介绍性书籍,以便我了解提升使用背后的心态和一些使用提升的编程示例?
我真的认为在线手册网站绝对是垃圾。至少对于那些对 C++ 和 STL 不完全陌生但在 'struct' 声明以及 '::' 和 '<>' 使用的分数中迷失的人来说,它看起来是这样的。一般来说,所有让新手难以使用和理解的东西。