1

Intel コンパイラ 11.1.xxx に問題があります。これらの問題は、MS CL コンパイラでのコンパイル中には発生しません。そして、コード(外部ブーストライブラリヘッダー)の何が問題なのかわかりません。複数のエラーが発生します。

..\boost/log/attributes/attribute_set.hpp(148): エラー: 宣言は定数 "bool fConstV" と互換性がありません (147 行で宣言されています) template< bool fConstV > フレンド クラス iter; ^ 中に検出: クラス "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 [CharT=char,

..\boost/log/attributes/named_scope.hpp(146): エラー: 宣言は定数 "bool fConstV" と互換性がありません (145 行で宣言されています) template< bool fConstV > フレンド クラス iter; ^ 中に検出: クラス "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/ formatters/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 >;
            /* ... */
            /* ... */
       }
    }

basiclogger.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 に答える