Chris@16
|
1 // (C) Copyright Gennadiy Rozental 2005-2008.
|
Chris@16
|
2 // Distributed under the Boost Software License, Version 1.0.
|
Chris@16
|
3 // (See accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
4 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
5
|
Chris@16
|
6 // See http://www.boost.org/libs/test for the library home page.
|
Chris@16
|
7 //
|
Chris@16
|
8 // File : $RCSfile$
|
Chris@16
|
9 //
|
Chris@101
|
10 // Version : $Revision$
|
Chris@16
|
11 //
|
Chris@16
|
12 // Description : simple helpers for creating cusom output manipulators
|
Chris@16
|
13 // ***************************************************************************
|
Chris@16
|
14
|
Chris@16
|
15 #ifndef BOOST_TEST_CUSTOM_MANIP_HPP_071894GER
|
Chris@16
|
16 #define BOOST_TEST_CUSTOM_MANIP_HPP_071894GER
|
Chris@16
|
17
|
Chris@16
|
18 // STL
|
Chris@16
|
19 #include <iosfwd>
|
Chris@16
|
20
|
Chris@16
|
21 #include <boost/test/detail/suppress_warnings.hpp>
|
Chris@16
|
22
|
Chris@16
|
23 //____________________________________________________________________________//
|
Chris@16
|
24
|
Chris@16
|
25 namespace boost {
|
Chris@16
|
26
|
Chris@16
|
27 namespace unit_test {
|
Chris@16
|
28
|
Chris@16
|
29 // ************************************************************************** //
|
Chris@16
|
30 // ************** custom manipulators helpers ************** //
|
Chris@16
|
31 // ************************************************************************** //
|
Chris@16
|
32
|
Chris@16
|
33 template<typename Manip>
|
Chris@16
|
34 struct custom_printer {
|
Chris@16
|
35 explicit custom_printer( std::ostream& ostr ) : m_ostr( &ostr ) {}
|
Chris@16
|
36
|
Chris@16
|
37 std::ostream& operator*() const { return *m_ostr; }
|
Chris@16
|
38
|
Chris@16
|
39 private:
|
Chris@16
|
40 std::ostream* const m_ostr;
|
Chris@16
|
41 };
|
Chris@16
|
42
|
Chris@16
|
43 //____________________________________________________________________________//
|
Chris@16
|
44
|
Chris@16
|
45 template<typename Uniq> struct custom_manip {};
|
Chris@16
|
46
|
Chris@16
|
47 //____________________________________________________________________________//
|
Chris@16
|
48
|
Chris@16
|
49 template<typename Uniq>
|
Chris@16
|
50 inline custom_printer<custom_manip<Uniq> >
|
Chris@16
|
51 operator<<( std::ostream& ostr, custom_manip<Uniq> const& ) { return custom_printer<custom_manip<Uniq> >( ostr ); }
|
Chris@16
|
52
|
Chris@16
|
53 //____________________________________________________________________________//
|
Chris@16
|
54
|
Chris@16
|
55 } // namespace unit_test
|
Chris@16
|
56
|
Chris@16
|
57 } // namespace boost
|
Chris@16
|
58
|
Chris@16
|
59 //____________________________________________________________________________//
|
Chris@16
|
60
|
Chris@16
|
61 #include <boost/test/detail/enable_warnings.hpp>
|
Chris@16
|
62
|
Chris@16
|
63 #endif // BOOST_TEST_CUSTOM_MANIP_HPP_071894GER
|