Marjoram
0.01
Library for Functional Programming in C++
|
Implementation of (safe) union of two types. More...
#include <eitherImpl.hpp>
Public Member Functions | |
template<typename... Args> | |
EitherImpl (LeftSide, Args &&... args) | |
Construct containing left type. | |
template<typename... Args> | |
EitherImpl (RightSide, Args &&... args) | |
Construct containing right type. | |
~EitherImpl () | |
Destructor, calling destructor of contained type. | |
EitherImpl (const EitherImpl &rhs) | |
Copy constructor; Copies underlying value. | |
EitherImpl (EitherImpl &&rhs) noexcept | |
Move constructor; Moves underlying value. | |
EitherImpl & | operator= (const EitherImpl &rhs) |
Copy assignment operator; Copies underlying value. | |
EitherImpl & | operator= (EitherImpl &&rhs) noexcept |
Move assignment operator; Moves underlying value. | |
Right_t & | asRight () |
Returns stored B value. More... | |
const Right_t & | asRight () const |
Returns stored B value. More... | |
Left_t & | asLeft () |
Returns stored A value. More... | |
const Left_t & | asLeft () const |
Returns stored A value. More... | |
Protected Attributes | |
EitherSide | side |
Indicates whether this contains an A or a B. | |
Implementation of (safe) union of two types.
|
inline |
Returns stored A value.
Undefined behavior if this either does not contain a A.
|
inline |
Returns stored A value.
Undefined behavior if this either does not contain a A.
|
inline |
Returns stored B value.
Undefined behavior if this either does not contain a B.
|
inline |
Returns stored B value.
Undefined behavior if this either does not contain a B.