MCPcopy Create free account
hub / github.com/Achain-Dev/Achain / optional

Class optional

include/fc/optional.hpp:21–241  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19 */
20 template<typename T>
21 class optional
22 {
23 public:
24 optional():_valid(false){}
25 ~optional(){ reset(); }
26
27 optional( optional& o )
28 :_valid(false)
29 {
30 if( o._valid ) new (ptr()) T( *o );
31 _valid = o._valid;
32 }
33
34 optional( const optional& o )
35 :_valid(false)
36 {
37 if( o._valid ) new (ptr()) T( *o );
38 _valid = o._valid;
39 }
40
41 optional( optional&& o )
42 :_valid(false)
43 {
44 if( o._valid ) new (ptr()) T( fc::move(*o) );
45 _valid = o._valid;
46 o.reset();
47 }
48
49 template<typename U>
50 optional( const optional<U>& o )
51 :_valid(false)
52 {
53 if( o._valid ) new (ptr()) T( *o );
54 _valid = o._valid;
55 }
56
57 template<typename U>
58 optional( optional<U>& o )
59 :_valid(false)
60 {
61 if( o._valid )
62 {
63 new (ptr()) T( *o );
64 }
65 _valid = o._valid;
66 }
67
68 template<typename U>
69 optional( optional<U>&& o )
70 :_valid(false)
71 {
72 if( o._valid ) new (ptr()) T( fc::move(*o) );
73 _valid = o._valid;
74 o.reset();
75 }
76
77 template<typename U>
78 optional( U&& u )

Callers

nothing calls this directly

Calls 6

ptrFunction · 0.85
assertClass · 0.85
resetFunction · 0.50
refFunction · 0.50
moveFunction · 0.50
resetMethod · 0.45

Tested by

no test coverage detected