// Copyright (C) 2014 Andrzej Krzemienski. // // Use, modification, and distribution is subject to 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/lib/optional for documentation. // // You are welcome to contact the author at: // akrzemi1@gmail.com #include "boost/optional/optional.hpp" #ifdef __BORLANDC__ #pragma hdrstop #endif #include "boost/core/lightweight_test.hpp" #include "boost/none.hpp" struct SemiRegular // no operator== { private: void operator==(SemiRegular const&) const {} private: void operator!=(SemiRegular const&) const {} }; void test_equal_to_none_of_noncomparable_T() { boost::optional i = SemiRegular(); boost::optional o; BOOST_TEST(i != boost::none); BOOST_TEST(boost::none != i); BOOST_TEST(o == boost::none); BOOST_TEST(boost::none == o); } int main() { test_equal_to_none_of_noncomparable_T(); return boost::report_errors(); }