【发布时间】:2018-07-20 09:52:13
【问题描述】:
添加#include<boost/bimap.hpp> 时出现解析模板错误
我想从它的值中找到一个映射的键,因此想到了使用 Boost 的 Bimap 但得到以下错误。
/usr/include/boost/bimap/relation/structured_pair.hpp: In function ‘bool boost::bimaps::relation::operator<(const boost::bimaps::relation::structured_pair<FirstType, SecondType, Info, Layout1>&, const boost::bimaps::relation::structured_pair<FirstType, SecondType, Info, Layout2>&)’:
/usr/include/boost/bimap/relation/structured_pair.hpp:375:19: error: parse error in template argument list
return ( ( a.first < b.first ) ||
^
/usr/include/boost/bimap/relation/structured_pair.hpp: In function ‘bool boost::bimaps::relation::operator<=(const boost::bimaps::relation::structured_pair<FirstType, SecondType, Info, Layout1>&, const boost::bimaps::relation::structured_pair<FirstType, SecondType, Info, Layout2>&)’:
/usr/include/boost/bimap/relation/structured_pair.hpp:383:19: error: parse error in template argument list
return ( ( a.first < b.first ) ||
^
/usr/include/boost/bimap/relation/structured_pair.hpp: In function ‘bool boost::bimaps::relation::operator<(const boost::bimaps::relation::structured_pair<FirstType, SecondType, Info, Layout1>&, const std::pair<F, S>&)’:
/usr/include/boost/bimap/relation/structured_pair.hpp:424:19: error: parse error in template argument list
return ( ( a.first < b.first ) ||
^
/usr/include/boost/bimap/relation/structured_pair.hpp: In function ‘bool boost::bimaps::relation::operator<=(const boost::bimaps::relation::structured_pair<FirstType, SecondType, Info, Layout1>&, const std::pair<F, S>&)’:
/usr/include/boost/bimap/relation/structured_pair.hpp:432:19: error: parse error in template argument list
return ( ( a.first < b.first ) ||
^
/usr/include/boost/bimap/relation/structured_pair.hpp: In function ‘bool boost::bimaps::relation::operator<(const std::pair<F, S>&, const boost::bimaps::relation::structured_pair<FirstType, SecondType, Info, Layout1>&)’:
/usr/include/boost/bimap/relation/structured_pair.hpp:473:19: error: parse error in template argument list
return ( ( a.first < b.first ) ||
^
/usr/include/boost/bimap/relation/structured_pair.hpp: In function ‘bool boost::bimaps::relation::operator<=(const std::pair<F, S>&, const boost::bimaps::relation::structured_pair<FirstType, SecondType, Info, Layout1>&)’:
/usr/include/boost/bimap/relation/structured_pair.hpp:481:19: error: parse error in template argument list
return ( ( a.first < b.first ) ||
【问题讨论】:
-
请显示最小代码以重现。如果它是只是包含,命名编译器和版本
-
根据您在此处显示的内容,我怀疑 #define 会覆盖所涉及的标识符的含义(例如
first),使编译器认为模板参数列表与< -
对不起.. 我还没有写任何代码。如果我只包含标题,我会收到错误消息。编译器是 - gcc 4.8.5
-
其他版本(提升?)和标志?
标签: c++11 templates boost bimap