MCPcopy Create free account
hub / github.com/boostorg/leaf / optional

Class optional

include/boost/leaf/detail/optional.hpp:16–52  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14{
15 template <class T>
16 class optional
17 {
18 int key_;
19 union { T value_; };
20
21 public:
22
23 typedef T value_type;
24
25 BOOST_LEAF_CONSTEXPR optional() noexcept:
26 key_(0)
27 {
28 }
29
30 BOOST_LEAF_CONSTEXPR optional( optional const & x ):
31 key_(x.key_)
32 {
33 if( x.key_ )
34 (void) new (&value_) T( x.value_ );
35 }
36
37 BOOST_LEAF_CONSTEXPR optional( optional && x ) noexcept:
38 key_(x.key_)
39 {
40 if( x.key_ )
41 {
42 (void) new (&value_) T( std::move(x.value_) );
43 x.reset();
44 }
45 }
46
47 BOOST_LEAF_CONSTEXPR optional( int key, T const & v ):
48 key_(key),
49 value_(v)
50 {
51 BOOST_LEAF_ASSERT(!empty());
52 }
53
54 BOOST_LEAF_CONSTEXPR optional( int key, T && v ) noexcept:
55 key_(key),

Callers

nothing calls this directly

Calls 1

emptyFunction · 0.85

Tested by

no test coverage detected