// // 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 #include #include // 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(); }