55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								// ----------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								// 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(__DECCXX_VER, BOOST_TESTED_AT(60590042))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#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 // -__DECCXX_VER
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // -BOOST_MSVC_DISAMBIGUATER_HPP
							 |