1

我在使用 Intel 编译器 11.1.xxx 时遇到一些问题 这些问题在使用 MS CL 编译器进行编译期间不会出现。而且我不明白代码有什么问题(外部boost库头)我最终遇到了多个错误:

..\boost/log/attributes/attribute_set.hpp(148):错误:声明与常量“bool fConstV”(在第 147 行声明)不兼容模板<bool fConstV> 友元类迭代器;^ 在以下期间检测到:类“boost::log_mt::basic_attribute_set [with CharT=char]”在“..\boost/log/sources/basic_logger.hpp”第 252 行的实例化类“boost::log_mt::”的实例化sources::basic_logger [with CharT=char, FinalT=boost::log_mt::sources::logger, ThreadingModelT=boost::log_mt::sources::single_thread_model]”在“..\boost/log/sources”的第 738 行/basic_logger.hpp” 类“boost::log_mt::sources::basic_composite_logger [with CharT=char,

..\boost/log/attributes/named_scope.hpp(146):错误:声明与常量“bool fConstV”(在第 145 行声明)不兼容 ^ 在以下期间检测到:类“boost::log_mt::attributes::basic_named_scope_list [with CharT=char]”在第 364 行实例化类“boost::log_mt::attributes::basic_named_scope [with CharT=char]”在“..\boost/log/formatters/named_scope.hpp”的第 94 行在“..\boost/log/格式化程序/named_scope.hpp"

属性集.hpp

    template< typename CharT >
    class basic_attribute_set
    {
        /* ... */
        template< bool fConstV > class iter;
        template< bool fConstV > friend class iter;
        template< bool fConstV >

       class iter
       {
            friend class iter< !fConstV >;
            friend class basic_attribute_set< CharT >;
            /* ... */
            /* ... */
       }
    }

基本记录器.hpp

   class logger : public basic_composite_logger< char, logger, single_thread_model, mpl::vector0< > >
   {
       BOOST_LOG_FORWARD_LOGGER_CONSTRUCTORS(logger)
   };

欢迎任何提示。

4

1 回答 1

0

也许在第 148 行你想要template <bool fConstV> friend class iter<fConstV>;?虽然,iter声明为嵌套类,但我认为您不需要朋友声明;

于 2009-09-18T12:40:58.977 回答