【问题标题】:Boost BiMap Parse Template ErrorBoost BiMap 解析模板错误
【发布时间】: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),使编译器认为模板参数列表与 &lt;
  • 对不起.. 我还没有写任何代码。如果我只包含标题,我会收到错误消息。编译器是 - gcc 4.8.5
  • 其他版本(提升?)和标志?

标签: c++11 templates boost bimap


【解决方案1】:

使用 GCC 4.8.5:

总而言之,看起来你做错了什么。还有哪些其他内容?如果可能,检查预处理的源代码。

【讨论】:

    猜你喜欢
    • 2018-01-27
    • 2017-05-12
    • 2016-04-21
    • 1970-01-01
    • 2016-12-25
    • 2017-02-19
    • 2014-07-20
    • 2012-11-03
    • 1970-01-01
    相关资源
    最近更新 更多