]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/optional/test/optional_test_convert_from_T.cpp
1 // Copyright (C) 2014 Andrzej Krzemienski.
3 // Use, modification, and distribution is subject to the Boost Software
4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
7 // See http://www.boost.org/lib/optional for documentation.
9 // You are welcome to contact the author at:
12 #include "boost/optional/optional.hpp"
18 #include "boost/core/lightweight_test.hpp"
19 #include "boost/none.hpp"
21 //#ifndef BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
23 using boost::optional
;
29 #ifndef BOOST_OPTIONAL_DETAIL_NO_RVALUE_REFERENCES
31 superconv(T
&&) { BOOST_STATIC_ASSERT(sizeof(T
) == 0); }
34 superconv(const T
&) { BOOST_STATIC_ASSERT(sizeof(T
) == 0); }
36 superconv( T
&) { BOOST_STATIC_ASSERT(sizeof(T
) == 0); }
42 void test_optional_of_superconverting_T() // compile-time test
44 #ifndef BOOST_OPTIONAL_DETAIL_NO_IS_CONSTRUCTIBLE_TRAIT
45 superconv
<optional
<int> > s
;
46 superconv
<optional
<int> > & rs
= s
;
47 optional
<superconv
<optional
<int> > > os
= rs
;
51 void test_optional_optional_T()
53 optional
<int> oi1 (1), oiN
;
54 optional
< optional
<int> > ooi1 (oi1
), ooiN(oiN
);
58 BOOST_TEST_EQ(**ooi1
, 1);
66 test_optional_optional_T();
67 test_optional_of_superconverting_T();
69 return boost::report_errors();