0

我对使用 boost::bimap 的燧石代码片段有疑问。我有一个简单的 bimap.cpp,如下所示:

#include <boost/bimap.hpp>

typedef boost::bimap<int, double> TestBimap;

int main()
{
    TestBimap flintTest;
    return 0;
}

我知道,这不是完美的,但这只是一个例子。我在上面运行燧石:

flint --i../flexelint_cfg/ --i/home/rat/boost/1.45.0/include ../flexelint_cfg//co-gcc.lnt  bimap.cpp

并且燧石返回大量错误。从上到下的几个是:

    --- Module:   bimap.cpp (C++)$
    $
      While instantiating boost::bimaps::bimap<int,double> at File bimap.cpp line 7$
      While instantiating boost::bimaps::detail::bimap_core<int,double,mpl_::na,mpl_::na,mpl_::na>$
        at File /boost/1.45.0/include/boost/bimap/bimap.hpp$
        line 137$
      While instantiating struct boost::bimaps::detail::manage_bimap_key<int> at$
        File /boost/1.45.0/include/boost/bimap/detail/bimap_core.hpp$
        line 90$
      While instantiating struct boost::bimaps::set_of<int> at File$
        /boost/1.45.0/include/boost/bimap/detail/manage_bimap_key.hpp$
        line 69$
      While instantiating struct boost::concepts::requirement_<void$
        (*)(boost::AssignableConcept<int>)> at File /boost/1.45.0/include/boost/bimap/set_of.hpp$
        line 130$
      While instantiating struct boost::AssignableConcept<int> at File$
        /boost/1.45.0/include/boost/concept/detail/general.hpp$
        line 54$
      While instantiating struct boost::Assignable<int> at File$
        /boost/1.45.0/include/boost/concept_check.hpp$
        line 137$
      While instantiating struct boost::concepts::requirement_<void$
        (*)(boost::concepts::usage_requirements<boost::Assignable<int>>)> at File$
        /boost/1.45.0/include/boost/concept_check.hpp$
        line 139$
      While instantiating struct boost::mpl::if_<boost::concepts::not_satisfied<boost::concepts::usage_requirements<boost::Assignable<int>$
    >>,boost::concepts::constraint<boost::concepts::usage_requirements<boost::Assignable<int>>>,boost::concepts::requirement<boost::concepts::f$
    ailed ************usage_requirements::************>> at File$
        /boost/1.45.0/include/boost/concept/detail/general.hpp$
        line 56$
      While instantiating struct boost::concepts::not_satisfied<boost::concepts::usage_requirements<boost::Assignable<int>$
    >> at File /boost/1.45.0/include/boost/mpl/if.hpp$
        line 63$
                           _$
        TestBimap flintTest;$
    /boost/1.45.0/include/boost/concept/detail/has_constraints.hpp $
        44  Error 1015: Symbol 'constraints' not found in class$
    bimap.cpp  7  Info 831: Reference cited in prior message$
    /boost/1.45.0/include/boost/bimap/bimap.hpp $
        137  Info 831: Reference cited in prior message$
    /64bit/boost/1.45.0/include/boost/mpl/if.hpp $
        63  Info 831: Reference cited in prior message$
    /boost/1.45.0/include/boost/bimap/detail/bimap_core.hpp $
        90  Info 831: Reference cited in prior message$
    /boost/1.45.0/include/boost/concept_check.hpp $
        137  Info 831: Reference cited in prior message$
   /boost/1.45.0/include/boost/concept_check.hpp $
        139  Info 831: Reference cited in prior message$
    /boost/1.45.0/include/boost/concept/detail/general.hpp $
        54  Info 831: Reference cited in prior message$
    /boost/1.45.0/include/boost/concept/detail/general.hpp $
        56  Info 831: Reference cited in prior message$
    /boost/1.45.0/include/boost/bimap/detail/manage_bimap_key.hpp $
        69  Info 831: Reference cited in prior message$
    /boost/1.45.0/include/boost/bimap/set_of.hpp $
        130  Info 831: Reference cited in prior message$

我的 FlexeLint 版本是:

FlexeLint for C/C++ (Unix) Vers. 9.00i, Copyright Gimpel Software 1985-2012

我花了几个小时试图让它工作,但没有运气。有人遇到同样的问题并有解决方案吗?这是错误配置吗 - 如果需要,我可以发布我的配置。

我将非常感谢您的帮助

最好的祝福!

PS:请使用flexelint标签;>?

4

1 回答 1

0

对于那些和我遇到同样问题的人。我直接向 Gimepl 支持人员询问了这个问题,他们回答说这是 FlexeLint 不处理 c++11 可变参数模板的问题。因此,目前,唯一的解决方法是通过 -elib 和 -e 选项抑制这些警告。

于 2012-11-23T12:29:22.347 回答