// Copyright (C) 2015 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 #define BOOST_OPTIONAL_CONFIG_NO_RVALUE_REFERENCES #include "boost/optional/optional.hpp" #ifdef __BORLANDC__ #pragma hdrstop #endif #include "boost/core/lightweight_test.hpp" struct Wrapper { operator int () { return 9; } operator boost::optional () { return 7; } }; void test() { #if (!defined BOOST_NO_CXX11_RVALUE_REFERENCES) boost::optional v = Wrapper(); BOOST_TEST(v); BOOST_TEST_EQ(*v, 7); #endif } int main() { test(); return boost::report_errors(); }