You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
56 lines
1.7 KiB
56 lines
1.7 KiB
// ---------------------------------------------------------------------------- |
|
// msvc_disambiguater.hpp : msvc workarounds. (for put_{head|last} overloads) |
|
// the trick was described in boost's list by Aleksey Gurtovoy |
|
// ---------------------------------------------------------------------------- |
|
|
|
// Copyright Samuel Krempp 2003. Use, modification, and distribution are |
|
// subject to the Boost Software License, Version 1.0. (See accompanying |
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
|
|
|
// see http://www.boost.org/libs/format for library home page |
|
|
|
// ---------------------------------------------------------------------------- |
|
|
|
#ifndef BOOST_MSVC_DISAMBIGUATER_HPP |
|
#define BOOST_MSVC_DISAMBIGUATER_HPP |
|
|
|
#if BOOST_WORKAROUND( BOOST_MSVC, <= 1300) || \ |
|
BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042)) |
|
// this whole header is specifically for msvc up to 7.0 |
|
|
|
#include <boost/format/group.hpp> |
|
#include <ostream> |
|
|
|
namespace boost { |
|
namespace io { |
|
namespace detail { |
|
|
|
template< class Ch, class Tr, class T > |
|
struct disambiguater |
|
{ |
|
template< typename U > |
|
static void put_head(BOOST_IO_STD basic_ostream<Ch, Tr>& os, group1<U> const& x, long) |
|
{ |
|
os << group_head(x.a1_); |
|
} |
|
static void put_head(BOOST_IO_STD basic_ostream<Ch, Tr>& os, T const& x, int) |
|
{ |
|
} |
|
template< typename U > |
|
static void put_last(BOOST_IO_STD basic_ostream<Ch, Tr>& os, group1<U> const& x, long) |
|
{ |
|
os << group_last(x.a1_); |
|
} |
|
static void put_last(BOOST_IO_STD basic_ostream<Ch, Tr>& os, T const& x, int) |
|
{ |
|
os << x; |
|
} |
|
}; |
|
|
|
} // namespace detail |
|
} // namespace io |
|
} // namespace boost |
|
|
|
#endif // -BOOST_MSVC |
|
|
|
#endif // -BOOST_MSVC_DISAMBIGUATER_HPP
|
|
|