Lumino
ln::Optional< T > Class Template Reference

任意の型Tの値と、追加の無効値状態を表現できる型です。 More...

#include <Optional.hpp>

Public Member Functions

LN_CONSTEXPR Optional () LN_NOEXCEPT
 有効値を保持していない状態で構築します。
 
LN_CONSTEXPR Optional (std::nullptr_t) LN_NOEXCEPT
 有効値を保持していない状態で構築します。
 
LN_CONSTEXPR Optional (const Optional< T > &other)
 コピーコンストラクタ
 
LN_CONSTEXPR Optional (Optional &&other) LN_NOEXCEPT
 ムーブコンストラクタ
 
 Optional (const T &value)
 受け取った値を有効値として保持して構築します。
 
 Optional (T &&value)
 受け取った値を有効値として保持して構築します。
 
template<class U >
 Optional (const Optional< U > &rhs)
 T に変換可能な型 U を持つ Optional をコピーして構築します。
 
template<class U >
 Optional (Optional< U > &&rhs)
 T に変換可能な型 U を持つ Optional をムーブして構築します。
 
template<class U , typename std::enable_if< std::is_constructible< T, U >::value &&std::is_convertible< U, T >::value, bool >::type = false>
LN_CONSTEXPR Optional (U &&value)
 T に変換可能な型 U の値から構築します。
 
template<class U , typename std::enable_if< std::is_constructible< T, U >::value &&!std::is_convertible< U, T >::value, bool >::type = false>
LN_CONSTEXPR Optional (U &&value)
 T に変換可能な型 U の値から構築します。
 
void reset () LN_NOEXCEPT
 値を保持していない状態にします。
 
LN_CONSTEXPR operator bool () const LN_NOEXCEPT
 値を保持しているかを確認します。
 
bool hasValue () const
 値を保持しているかを確認します。
 
LN_CONSTEXPR T & operator* () &
 間接参照演算子で値を取得します。
 
LN_CONSTEXPR const T & operator* () const &
 間接参照演算子で値を取得します。
 
LN_CONSTEXPR T && operator* () &&
 間接参照演算子で値を取得します。
 
LN_CONSTEXPR const T && operator* () const &&
 間接参照演算子で値を取得します。
 
LN_CONSTEXPR T * operator-> ()
 保持している値へのポインタを返します。
 
LN_CONSTEXPR const T * operator-> () const
 保持している値へのポインタを返します。
 
LN_CONSTEXPR T & value () &
 値を取得します。
 
LN_CONSTEXPR const T & value () const &
 値を取得します。
 
LN_CONSTEXPR T && value () &&
 値を取得します。
 
LN_CONSTEXPR const T && value () const &&
 値を取得します。
 
template<class U >
LN_CONSTEXPR T valueOr (U &&defaultValue) const &
 値を取得します。値を保持していない場合は指定された既定値を返します。
 
template<class U >
LN_CONSTEXPR T valueOr (U &&defaultValue) &&
 値を取得します。値を保持していない場合は指定された既定値を返します。
 

Detailed Description

template<typename T>
class ln::Optional< T >

任意の型Tの値と、追加の無効値状態を表現できる型です。

次の例では、値を表示する前に変数に値が格納されているかどうかをテストします。

Optional<int> x = 10;
if (x)
std::cout << x.value();
else
std::cout << "Undefined";

The documentation for this class was generated from the following file: