我可以编译this page上找到的员工示例代码。
如果我用8个以上的字符串扩展结构:
struct employee
{
int age;
std::string surname;
std::string forename;
std::string a1;
std::string a2;
std::string a3;
std::string a4;
std::string a5;
std::string a6;
std::string a7;
std::string a8;
double salary;
};
(当然我也扩展了BOOST_FUSION_ADAPT_STRUCT和语法),然后当我尝试编译时出现以下错误:
../include/boost/fusion/container/vector/convert.hpp:26:13: error: invalid use of incomplete type ‘struct boost::fusion::detail::as_vector<12>’
../include/boost/fusion/container/vector/detail/as_vector.hpp:26:12: error: declaration of ‘struct boost::fusion::detail::as_vector<12>’
我发现如果我的结构有> gt,就会发生这种情况。 10项。两个问题:
欢迎任何输入。
答案 0 :(得分:6)
将FUSION_MAX_VECTOR_SIZE
定义为您想要的上限,请在boost/fusion/container/vector/limits.hpp
中查看默认定义。 boost/fusion/container/vector.hpp
然后有条件地包括预处理的来源,具体取决于上限。