forked from boostorg/core
		
	
		
			
				
	
	
		
			148 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//
 | 
						|
// Test for lightweight_test.hpp
 | 
						|
//
 | 
						|
// Copyright (c) 2014, 2018 Peter Dimov
 | 
						|
//
 | 
						|
// 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
 | 
						|
//
 | 
						|
 | 
						|
#include <boost/core/lightweight_test.hpp>
 | 
						|
#include <boost/core/noncopyable.hpp>
 | 
						|
#include <ostream>
 | 
						|
 | 
						|
// EQ
 | 
						|
 | 
						|
struct eq1: private boost::noncopyable {};
 | 
						|
struct eq2: private boost::noncopyable {};
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, eq1 const& )
 | 
						|
{
 | 
						|
    return os << "eq1()";
 | 
						|
}
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, eq2 const& )
 | 
						|
{
 | 
						|
    return os << "eq2()";
 | 
						|
}
 | 
						|
 | 
						|
bool operator==( eq1 const&, eq2 const& )
 | 
						|
{
 | 
						|
    return true;
 | 
						|
}
 | 
						|
 | 
						|
// NE
 | 
						|
 | 
						|
struct ne1: private boost::noncopyable {};
 | 
						|
struct ne2: private boost::noncopyable {};
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, ne1 const& )
 | 
						|
{
 | 
						|
    return os << "ne1()";
 | 
						|
}
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, ne2 const& )
 | 
						|
{
 | 
						|
    return os << "ne2()";
 | 
						|
}
 | 
						|
 | 
						|
bool operator!=( ne1 const&, ne2 const& )
 | 
						|
{
 | 
						|
    return true;
 | 
						|
}
 | 
						|
 | 
						|
// LT
 | 
						|
 | 
						|
struct lt1: private boost::noncopyable {};
 | 
						|
struct lt2: private boost::noncopyable {};
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, lt1 const& )
 | 
						|
{
 | 
						|
    return os << "lt1()";
 | 
						|
}
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, lt2 const& )
 | 
						|
{
 | 
						|
    return os << "lt2()";
 | 
						|
}
 | 
						|
 | 
						|
bool operator<( lt1 const&, lt2 const& )
 | 
						|
{
 | 
						|
    return true;
 | 
						|
}
 | 
						|
 | 
						|
// LE
 | 
						|
 | 
						|
struct le1: private boost::noncopyable {};
 | 
						|
struct le2: private boost::noncopyable {};
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, le1 const& )
 | 
						|
{
 | 
						|
    return os << "le1()";
 | 
						|
}
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, le2 const& )
 | 
						|
{
 | 
						|
    return os << "le2()";
 | 
						|
}
 | 
						|
 | 
						|
bool operator<=( le1 const&, le2 const& )
 | 
						|
{
 | 
						|
    return true;
 | 
						|
}
 | 
						|
 | 
						|
// GT
 | 
						|
 | 
						|
struct gt1: private boost::noncopyable {};
 | 
						|
struct gt2: private boost::noncopyable {};
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, gt1 const& )
 | 
						|
{
 | 
						|
    return os << "gt1()";
 | 
						|
}
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, gt2 const& )
 | 
						|
{
 | 
						|
    return os << "gt2()";
 | 
						|
}
 | 
						|
 | 
						|
bool operator>( gt1 const&, gt2 const& )
 | 
						|
{
 | 
						|
    return true;
 | 
						|
}
 | 
						|
 | 
						|
// GE
 | 
						|
 | 
						|
struct ge1: private boost::noncopyable {};
 | 
						|
struct ge2: private boost::noncopyable {};
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, ge1 const& )
 | 
						|
{
 | 
						|
    return os << "ge1()";
 | 
						|
}
 | 
						|
 | 
						|
std::ostream& operator<<( std::ostream& os, ge2 const& )
 | 
						|
{
 | 
						|
    return os << "ge2()";
 | 
						|
}
 | 
						|
 | 
						|
bool operator>=( ge1 const&, ge2 const& )
 | 
						|
{
 | 
						|
    return true;
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
 | 
						|
int main()
 | 
						|
{
 | 
						|
    BOOST_TEST_EQ( eq1(), eq2() );
 | 
						|
    BOOST_TEST_NE( ne1(), ne2() );
 | 
						|
    BOOST_TEST_LT( lt1(), lt2() );
 | 
						|
    BOOST_TEST_LE( le1(), le2() );
 | 
						|
    BOOST_TEST_GT( gt1(), gt2() );
 | 
						|
    BOOST_TEST_GE( ge1(), ge2() );
 | 
						|
 | 
						|
    return boost::report_errors();
 | 
						|
}
 |