// Copyright 2020 Peter Dimov // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt) #include #include #include #include #include // int main() { BOOST_TEST_EQ( boost::bind( std::plus(), 1, 2 )(), 3 ); BOOST_TEST_EQ( boost::bind( std::minus(), 1, 2 )(), -1 ); BOOST_TEST_EQ( boost::bind( std::multiplies(), 1, 2 )(), 2 ); BOOST_TEST_EQ( boost::bind( std::divides(), 1, 2 )(), 0 ); BOOST_TEST_EQ( boost::bind( std::modulus(), 1, 2 )(), 1 ); BOOST_TEST_EQ( boost::bind( std::negate(), 1 )(), -1 ); BOOST_TEST_EQ( boost::bind( std::equal_to(), 1, 2 )(), false ); BOOST_TEST_EQ( boost::bind( std::not_equal_to(), 1, 2 )(), true ); BOOST_TEST_EQ( boost::bind( std::greater(), 1, 2 )(), false ); BOOST_TEST_EQ( boost::bind( std::less(), 1, 2 )(), true ); BOOST_TEST_EQ( boost::bind( std::greater_equal(), 1, 2 )(), false ); BOOST_TEST_EQ( boost::bind( std::less_equal(), 1, 2 )(), true ); BOOST_TEST_EQ( boost::bind( std::logical_and(), 1, 2 )(), true ); BOOST_TEST_EQ( boost::bind( std::logical_or(), 1, 2 )(), true ); BOOST_TEST_EQ( boost::bind( std::logical_not(), 1 )(), false ); #if !BOOST_WORKAROUND(BOOST_MSVC, < 1600) BOOST_TEST_EQ( boost::bind( std::bit_and(), 1, 2 )(), 0 ); BOOST_TEST_EQ( boost::bind( std::bit_or(), 1, 2 )(), 3 ); BOOST_TEST_EQ( boost::bind( std::bit_xor(), 1, 2 )(), 3 ); #endif return boost::report_errors(); }