diff --git a/doc/Jamfile.v2 b/doc/Jamfile.v2 index c2837a7..e6df037 100644 --- a/doc/Jamfile.v2 +++ b/doc/Jamfile.v2 @@ -48,6 +48,7 @@ local doxygen_params = BOOST_LOG_NO_VTABLE= \\ BOOST_SYMBOL_VISIBLE= \\ BOOST_FORCEINLINE=inline \\ + BOOST_INLINE_VARIABLE=inline \\ BOOST_STATIC_ASSERT(x)= \\ BOOST_STATIC_ASSERT_MSG(x,y)= \\ BOOST_STATIC_CONSTANT(x,y)=\"static constexpr x y\" \\ diff --git a/include/boost/log/expressions/formatters/c_decorator.hpp b/include/boost/log/expressions/formatters/c_decorator.hpp index ec3f485..fe96fb2 100644 --- a/include/boost/log/expressions/formatters/c_decorator.hpp +++ b/include/boost/log/expressions/formatters/c_decorator.hpp @@ -154,10 +154,10 @@ struct c_decorator_gen * For wide-character formatting there is the similar \c wc_decor decorator generator object. */ #ifdef BOOST_LOG_USE_CHAR -const aux::c_decorator_gen< char > c_decor = {}; +BOOST_INLINE_VARIABLE const aux::c_decorator_gen< char > c_decor = {}; #endif #ifdef BOOST_LOG_USE_WCHAR_T -const aux::c_decorator_gen< wchar_t > wc_decor = {}; +BOOST_INLINE_VARIABLE const aux::c_decorator_gen< wchar_t > wc_decor = {}; #endif /*! @@ -254,10 +254,10 @@ struct c_ascii_decorator_gen * For wide-character formatting there is the similar \c wc_ascii_decor decorator generator object. */ #ifdef BOOST_LOG_USE_CHAR -const aux::c_ascii_decorator_gen< char > c_ascii_decor = {}; +BOOST_INLINE_VARIABLE const aux::c_ascii_decorator_gen< char > c_ascii_decor = {}; #endif #ifdef BOOST_LOG_USE_WCHAR_T -const aux::c_ascii_decorator_gen< wchar_t > wc_ascii_decor = {}; +BOOST_INLINE_VARIABLE const aux::c_ascii_decorator_gen< wchar_t > wc_ascii_decor = {}; #endif /*! diff --git a/include/boost/log/expressions/formatters/csv_decorator.hpp b/include/boost/log/expressions/formatters/csv_decorator.hpp index a4c1c28..e25a89d 100644 --- a/include/boost/log/expressions/formatters/csv_decorator.hpp +++ b/include/boost/log/expressions/formatters/csv_decorator.hpp @@ -114,10 +114,10 @@ struct csv_decorator_gen * For wide-character formatting there is the similar \c wcsv_decor decorator generator object. */ #ifdef BOOST_LOG_USE_CHAR -const aux::csv_decorator_gen< char > csv_decor = {}; +BOOST_INLINE_VARIABLE const aux::csv_decorator_gen< char > csv_decor = {}; #endif #ifdef BOOST_LOG_USE_WCHAR_T -const aux::csv_decorator_gen< wchar_t > wcsv_decor = {}; +BOOST_INLINE_VARIABLE const aux::csv_decorator_gen< wchar_t > wcsv_decor = {}; #endif /*! diff --git a/include/boost/log/expressions/formatters/stream.hpp b/include/boost/log/expressions/formatters/stream.hpp index 638ccbd..ef1f747 100644 --- a/include/boost/log/expressions/formatters/stream.hpp +++ b/include/boost/log/expressions/formatters/stream.hpp @@ -37,7 +37,7 @@ typedef phoenix::expression::argument< 2 >::type stream_type; /*! * Stream placeholder in formatter template expressions. */ -const stream_type stream = {}; +BOOST_INLINE_VARIABLE const stream_type stream = {}; } // namespace expressions diff --git a/include/boost/log/expressions/formatters/xml_decorator.hpp b/include/boost/log/expressions/formatters/xml_decorator.hpp index ca93a7d..02b0fc1 100644 --- a/include/boost/log/expressions/formatters/xml_decorator.hpp +++ b/include/boost/log/expressions/formatters/xml_decorator.hpp @@ -112,10 +112,10 @@ struct xml_decorator_gen * For wide-character formatting there is the similar \c wxml_decor decorator generator object. */ #ifdef BOOST_LOG_USE_CHAR -const aux::xml_decorator_gen< char > xml_decor = {}; +BOOST_INLINE_VARIABLE const aux::xml_decorator_gen< char > xml_decor = {}; #endif #ifdef BOOST_LOG_USE_WCHAR_T -const aux::xml_decorator_gen< wchar_t > wxml_decor = {}; +BOOST_INLINE_VARIABLE const aux::xml_decorator_gen< wchar_t > wxml_decor = {}; #endif /*! diff --git a/include/boost/log/expressions/keyword.hpp b/include/boost/log/expressions/keyword.hpp index 47f0121..7a8223e 100644 --- a/include/boost/log/expressions/keyword.hpp +++ b/include/boost/log/expressions/keyword.hpp @@ -200,7 +200,7 @@ struct protoify< boost::reference_wrapper< const boost::log::expressions::attrib #define BOOST_LOG_ATTRIBUTE_KEYWORD_IMPL(keyword_, name_, value_type_, tag_ns_)\ BOOST_LOG_ATTRIBUTE_KEYWORD_TYPE_IMPL(keyword_, name_, value_type_, tag_ns_)\ - const BOOST_PP_CAT(keyword_, _type) keyword_ = {}; + BOOST_INLINE_VARIABLE const BOOST_PP_CAT(keyword_, _type) keyword_ = {}; #endif // BOOST_LOG_DOXYGEN_PASS diff --git a/include/boost/log/expressions/message.hpp b/include/boost/log/expressions/message.hpp index e68aa37..394ad79 100644 --- a/include/boost/log/expressions/message.hpp +++ b/include/boost/log/expressions/message.hpp @@ -95,7 +95,7 @@ typedef attribute_keyword< tag::message > message_type; /*! * Generic message keyword. */ -const message_type message = {}; +BOOST_INLINE_VARIABLE const message_type message = {}; #if defined(BOOST_LOG_USE_CHAR) /*! @@ -105,7 +105,7 @@ typedef attribute_keyword< tag::smessage > smessage_type; /*! * Narrow message keyword. */ -const smessage_type smessage = {}; +BOOST_INLINE_VARIABLE const smessage_type smessage = {}; #endif #if defined(BOOST_LOG_USE_WCHAR_T) @@ -116,7 +116,7 @@ typedef attribute_keyword< tag::wmessage > wmessage_type; /*! * Wide message keyword. */ -const wmessage_type wmessage = {}; +BOOST_INLINE_VARIABLE const wmessage_type wmessage = {}; #endif } // namespace expressions diff --git a/include/boost/log/expressions/record.hpp b/include/boost/log/expressions/record.hpp index cfcf62b..e7f360f 100644 --- a/include/boost/log/expressions/record.hpp +++ b/include/boost/log/expressions/record.hpp @@ -37,7 +37,7 @@ typedef phoenix::expression::argument< 1 >::type record_type; /*! * Log record placeholder in formatter template expressions. */ -const record_type record = {}; +BOOST_INLINE_VARIABLE const record_type record = {}; } // namespace expressions diff --git a/include/boost/log/utility/manipulators/auto_newline.hpp b/include/boost/log/utility/manipulators/auto_newline.hpp index 933a670..d973b92 100644 --- a/include/boost/log/utility/manipulators/auto_newline.hpp +++ b/include/boost/log/utility/manipulators/auto_newline.hpp @@ -32,7 +32,7 @@ BOOST_LOG_OPEN_NAMESPACE * inserted into the stream is already a newline. */ struct auto_newline_manip {} -const auto_newline = {}; +BOOST_INLINE_VARIABLE const auto_newline = {}; /*! * Stream output operator for the \c auto_newline manipulator