FlexeLint и boost :: bimap

У меня проблема с фрагментом кода, который использует 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, пожалуйста;>?


person matekm    schedule 14.11.2012    source источник


Ответы (1)


Для тех из Вас, кто столкнулся с той же проблемой, что и я. Я задал этот вопрос непосредственно в службу поддержки Gimepl, и они ответили, что это проблема из-за того, что FlexeLint не обрабатывает вариативные шаблоны С ++ 11. Итак, на данный момент единственный обходной путь - подавить эти предупреждения с помощью параметров -elib и -e.

person matekm    schedule 23.11.2012