95 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| //  (C) Copyright Gennadiy Rozental 2001.
 | |
| //  Distributed under 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/test for the library home page.
 | |
| //
 | |
| //  File        : $RCSfile$
 | |
| //
 | |
| //  Version     : $Revision: 74248 $
 | |
| //
 | |
| //  Description : inidiration interfaces to support manipulators and message output
 | |
| // ***************************************************************************
 | |
| 
 | |
| #ifndef BOOST_TEST_TOOLS_DETAIL_INDIRECTIONS_HPP_112812GER
 | |
| #define BOOST_TEST_TOOLS_DETAIL_INDIRECTIONS_HPP_112812GER
 | |
| 
 | |
| // Boost.Test
 | |
| #include <boost/test/tools/detail/fwd.hpp>
 | |
| 
 | |
| #include <boost/test/tools/assertion_result.hpp>
 | |
| 
 | |
| #include <boost/test/detail/suppress_warnings.hpp>
 | |
| 
 | |
| //____________________________________________________________________________//
 | |
| 
 | |
| namespace boost {
 | |
| namespace test_tools {
 | |
| namespace tt_detail {
 | |
| 
 | |
| // ************************************************************************** //
 | |
| // **************        assertion_evaluate indirection        ************** //
 | |
| // ************************************************************************** //
 | |
| 
 | |
| template<typename E>
 | |
| struct assertion_evaluate_t {
 | |
|     assertion_evaluate_t( E const& e ) : m_e( e ) {}
 | |
|     operator assertion_result() { return m_e.evaluate( true ); }
 | |
| 
 | |
|     E const& m_e;
 | |
| };
 | |
| 
 | |
| //____________________________________________________________________________//
 | |
| 
 | |
| template<typename E>
 | |
| inline assertion_evaluate_t<E>
 | |
| assertion_evaluate( E const& e ) { return assertion_evaluate_t<E>( e ); }
 | |
| 
 | |
| //____________________________________________________________________________//
 | |
| 
 | |
| template<typename E, typename T>
 | |
| inline assertion_evaluate_t<E>
 | |
| operator<<( assertion_evaluate_t<E> const& ae, T const& ) { return ae; }
 | |
| 
 | |
| //____________________________________________________________________________//
 | |
| 
 | |
| // ************************************************************************** //
 | |
| // **************          assertion_text indirection          ************** //
 | |
| // ************************************************************************** //
 | |
| 
 | |
| template<typename T>
 | |
| inline unit_test::lazy_ostream const&
 | |
| assertion_text( unit_test::lazy_ostream const& /*et*/, T const& m ) { return m; }
 | |
| 
 | |
| //____________________________________________________________________________//
 | |
| 
 | |
| inline unit_test::lazy_ostream const&
 | |
| assertion_text( unit_test::lazy_ostream const& et, int ) { return et; }
 | |
| 
 | |
| //____________________________________________________________________________//
 | |
| 
 | |
| // ************************************************************************** //
 | |
| // **************        assertion_evaluate indirection        ************** //
 | |
| // ************************************************************************** //
 | |
| 
 | |
| struct assertion_type {
 | |
|     operator check_type() { return CHECK_MSG; }
 | |
| };
 | |
| 
 | |
| //____________________________________________________________________________//
 | |
| 
 | |
| template<typename T>
 | |
| inline assertion_type
 | |
| operator<<( assertion_type const& at, T const& ) { return at; }
 | |
| 
 | |
| //____________________________________________________________________________//
 | |
| 
 | |
| } // namespace tt_detail
 | |
| } // namespace test_tools
 | |
| } // namespace boost
 | |
| 
 | |
| #include <boost/test/detail/enable_warnings.hpp>
 | |
| 
 | |
| #endif // BOOST_TEST_TOOLS_DETAIL_INDIRECTIONS_HPP_112812GER
 | 
