1 // (C) Copyright Gennadiy Rozental 2005. 2 // Distributed under the Boost Software License, Version 1.0. 3 // (See accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 6 // See http://www.boost.org/libs/test for the library home page. 7 // 8 // File : $RCSfile: custom_manip.hpp,v $ 9 // 10 // Version : $Revision: 1.1.1.1 $ 11 // 12 // Description : simple helpers for creating cusom output manipulators 13 // *************************************************************************** 14 15 #ifndef BOOST_TEST_CUSTOM_MANIP_HPP_071894GER 16 #define BOOST_TEST_CUSTOM_MANIP_HPP_071894GER 17 18 // STL 19 #include <iosfwd> 20 21 #include <boost/test/detail/suppress_warnings.hpp> 22 23 //____________________________________________________________________________// 24 25 namespace boost { 26 27 namespace unit_test { 28 29 // ************************************************************************** // 30 // ************** custom manipulators helpers ************** // 31 // ************************************************************************** // 32 33 template<typename Manip> 34 struct custom_printer { custom_printerboost::unit_test::custom_printer35 explicit custom_printer( std::ostream& ostr ) : m_ostr( &ostr ) {} 36 operator *boost::unit_test::custom_printer37 std::ostream& operator*() const { return *m_ostr; } 38 39 private: 40 std::ostream* const m_ostr; 41 }; 42 43 //____________________________________________________________________________// 44 45 template<typename Uniq> struct custom_manip {}; 46 47 //____________________________________________________________________________// 48 49 template<typename Uniq> 50 inline custom_printer<custom_manip<Uniq> > operator <<(std::ostream & ostr,custom_manip<Uniq> const &)51operator<<( std::ostream& ostr, custom_manip<Uniq> const& ) { return custom_printer<custom_manip<Uniq> >( ostr ); } 52 53 //____________________________________________________________________________// 54 55 } // namespace unit_test 56 57 } // namespace boost 58 59 //____________________________________________________________________________// 60 61 #include <boost/test/detail/enable_warnings.hpp> 62 63 // *************************************************************************** 64 // Revision History : 65 // 66 // $Log: custom_manip.hpp,v $ 67 // Revision 1.1.1.1 2006/03/20 20:15:28 ewalkup 68 // boost libraries 69 // 70 // Revision 1.2 2005/02/20 08:27:08 rogeeff 71 // This a major update for Boost.Test framework. See release docs for complete list of fixes/updates 72 // 73 // Revision 1.1 2005/01/22 18:21:39 rogeeff 74 // moved sharable staff into utils 75 // 76 // Revision 1.1 2005/01/21 07:31:44 rogeeff 77 // xml helper facilities reworked to present manipulator interfaces 78 // 79 // *************************************************************************** 80 81 #endif // BOOST_TEST_CUSTOM_MANIP_HPP_071894GER 82