我遇到使用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
和flint会返回大量错误。顶部的少数是:
--- 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标签;&gt;?
答案 0 :(得分:0)
对于那些和我一样遇到同样问题的人。我直接向Gimepl支持询问了这个问题,他们回答说这是FlexeLint无法处理c ++ 11可变参数模板的问题。所以,就目前而言,只有解决方法是通过-elib和-e选项来抑制这些警告。