annotate DEPENDENCIES/generic/include/boost/format/detail/msvc_disambiguater.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 // ----------------------------------------------------------------------------
Chris@16 2 // msvc_disambiguater.hpp : msvc workarounds. (for put_{head|last} overloads)
Chris@16 3 // the trick was described in boost's list by Aleksey Gurtovoy
Chris@16 4 // ----------------------------------------------------------------------------
Chris@16 5
Chris@16 6 // Copyright Samuel Krempp 2003. Use, modification, and distribution are
Chris@16 7 // subject to the Boost Software License, Version 1.0. (See accompanying
Chris@16 8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 9
Chris@16 10 // see http://www.boost.org/libs/format for library home page
Chris@16 11
Chris@16 12 // ----------------------------------------------------------------------------
Chris@16 13
Chris@16 14 #ifndef BOOST_MSVC_DISAMBIGUATER_HPP
Chris@16 15 #define BOOST_MSVC_DISAMBIGUATER_HPP
Chris@16 16
Chris@101 17 #if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
Chris@16 18
Chris@16 19 #include <boost/format/group.hpp>
Chris@16 20 #include <ostream>
Chris@16 21
Chris@16 22 namespace boost {
Chris@16 23 namespace io {
Chris@16 24 namespace detail {
Chris@16 25
Chris@16 26 template< class Ch, class Tr, class T >
Chris@16 27 struct disambiguater
Chris@16 28 {
Chris@16 29 template< typename U >
Chris@16 30 static void put_head(BOOST_IO_STD basic_ostream<Ch, Tr>& os, group1<U> const& x, long)
Chris@16 31 {
Chris@16 32 os << group_head(x.a1_);
Chris@16 33 }
Chris@16 34 static void put_head(BOOST_IO_STD basic_ostream<Ch, Tr>& os, T const& x, int)
Chris@16 35 {
Chris@16 36 }
Chris@16 37 template< typename U >
Chris@16 38 static void put_last(BOOST_IO_STD basic_ostream<Ch, Tr>& os, group1<U> const& x, long)
Chris@16 39 {
Chris@16 40 os << group_last(x.a1_);
Chris@16 41 }
Chris@16 42 static void put_last(BOOST_IO_STD basic_ostream<Ch, Tr>& os, T const& x, int)
Chris@16 43 {
Chris@16 44 os << x;
Chris@16 45 }
Chris@16 46 };
Chris@16 47
Chris@16 48 } // namespace detail
Chris@16 49 } // namespace io
Chris@16 50 } // namespace boost
Chris@16 51
Chris@101 52 #endif // -__DECCXX_VER
Chris@16 53
Chris@16 54 #endif // -BOOST_MSVC_DISAMBIGUATER_HPP