diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2016-10-06 10:38:45 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2016-10-06 10:39:52 +0900 |
commit | 5cde13f21d36c7224b0e13d11c4b49379ae5210d (patch) | |
tree | e8269ac85a4b0f7d416e2565fa4f451b5cb41351 /boost/log/expressions/formatter.hpp | |
parent | d9ec475d945d3035377a0d89ed42e382d8988891 (diff) | |
download | boost-5cde13f21d36c7224b0e13d11c4b49379ae5210d.tar.gz boost-5cde13f21d36c7224b0e13d11c4b49379ae5210d.tar.bz2 boost-5cde13f21d36c7224b0e13d11c4b49379ae5210d.zip |
Imported Upstream version 1.61.0
Change-Id: I96a1f878d1e6164f01e9aadd5147f38fca448d90
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/log/expressions/formatter.hpp')
-rw-r--r-- | boost/log/expressions/formatter.hpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/boost/log/expressions/formatter.hpp b/boost/log/expressions/formatter.hpp index 5dc6a5b132..bdbabb504e 100644 --- a/boost/log/expressions/formatter.hpp +++ b/boost/log/expressions/formatter.hpp @@ -128,6 +128,16 @@ public: strm << static_cast< T&& >(val); return strm; } +#if defined(BOOST_MSVC) && BOOST_MSVC < 1800 + // MSVC 10 and 11 generate broken code for the perfect forwarding version above if T is an array type (e.g. a string literal) + template< typename T, unsigned int N > + BOOST_FORCEINLINE StreamT& operator<< (T (&val)[N]) const + { + StreamT& strm = this->get(); + strm << val; + return strm; + } +#endif #else template< typename T > BOOST_FORCEINLINE StreamT& operator<< (T& val) const @@ -364,13 +374,13 @@ public: basic_formatter(FunT&& fun) : m_Formatter(boost::forward< FunT >(fun)) { } -#elif !defined(BOOST_MSVC) || BOOST_MSVC > 1400 +#elif !defined(BOOST_MSVC) || BOOST_MSVC >= 1600 template< typename FunT > basic_formatter(FunT const& fun, typename disable_if_c< move_detail::is_rv< FunT >::value, int >::type = 0) : m_Formatter(fun) { } #else - // MSVC 8 blows up in unexpected ways if we use SFINAE to disable constructor instantiation + // MSVC 9 blows up in unexpected ways if we use SFINAE to disable constructor instantiation template< typename FunT > basic_formatter(FunT const& fun) : m_Formatter(fun) { |