UdonLibrary 1.0.0
機械システム研究部 C++ ライブラリ
読み取り中…
検索中…
一致する文字列を見つけられません
Udon::Traits 名前空間

クラス

struct  AlwaysFalse
 static_assert 失敗遅延用の型 [詳解]
 
struct  DummyEnumerator
 
struct  HasMemberFunctionBegin
 T に T::begin 関数が存在するか [詳解]
 
struct  HasMemberFunctionBegin< T, std::void_t< decltype(&T::begin)> >
 
struct  HasMemberFunctionEnumerate
 T に enumerate(f) が存在するかどうかを判定する [詳解]
 
struct  HasMemberFunctionEnumerate< T, typename std::enable_if< std::is_same< decltype(std::declval< T >().enumerate(std::declval< DummyEnumerator & >())), typename DummyEnumerator::ResultType >::value >::type >
 
struct  HasMemberFunctionShow
 T に T::show 関数が存在するか [詳解]
 
struct  HasMemberFunctionShow< T, std::void_t< decltype(&T::show)> >
 
struct  HasMemberFunctionShowRaw
 T に T::showRaw 関数が存在するか [詳解]
 
struct  HasMemberFunctionShowRaw< T, std::void_t< decltype(&T::showRaw)> >
 
struct  HasMemberFunctionUpdate
 T に T::update 関数が存在するか [詳解]
 
struct  HasMemberFunctionUpdate< T, std::void_t< decltype(&T::update)> >
 
struct  IsOutputStreamable
 
struct  IsOutputStreamable< OutputStream, T, std::void_t< decltype(std::declval< OutputStream & >()<< std::declval< T >())> >
 
struct  IsPrintable
 オブジェクトが全て出力可能か判定する [詳解]
 
struct  IsReader
 送信クラスであるか判定 [詳解]
 
struct  IsReader< T, typename std::enable_if< std::is_same< decltype(std::declval< T< int > >().getMessage()), Udon::Optional< typename T< int >::MessageType > >::value >::type >
 
struct  IsSerializable
 T が シリアライズ可能か判定する [詳解]
 
struct  IsWriter
 送信クラスであるか判定 [詳解]
 
struct  IsWriter< T, typename std::enable_if< std::is_same< decltype(std::declval< T< int > >().setMessage(std::declval< const typename T< int >::MessageType & >())), void >::value >::type >
 

型定義

template<typename T >
using RemoveConstT = typename std::remove_const<T>::type
 
template<typename T >
using RemoveVolatileT = typename std::remove_volatile<T>::type
 
template<typename T >
using RemoveReferenceT = typename std::remove_reference<T>::type
 
template<typename T >
using RemoveCVRefT = RemoveConstT<RemoveVolatileT<RemoveReferenceT<T>>>
 
template<typename T >
using IsBool = std::is_same<T, bool>
 
template<typename T >
using IsIntegral = std::is_integral<T>
 
template<typename T >
using IsIntegralNotBool = std::integral_constant<bool, IsIntegral<T>::value and not IsBool<T>::value>
 
template<typename T >
using IsFloatingPoint = std::is_floating_point<T>
 
template<typename T >
using IsArithmetic = std::is_arithmetic<T>
 
template<typename T >
using IsScalar = std::is_scalar<T>
 
template<typename T >
using IsEnum = std::is_enum<T>
 
template<typename T >
using IsArray = std::is_array<T>
 
template<typename T >
using DecayT = typename std::decay<T>::type
 
template<typename T >
using IsCString = std::is_same<DecayT<T>, const char*>
 
template<bool Test, typename T = void>
using EnableIfT = typename std::enable_if<Test, T>::type
 
template<bool Test>
using EnableIfVoidT = EnableIfT<Test, void>
 
template<bool Test, typename T = void>
using DisableIfT = typename std::enable_if<not Test, T>::type
 
template<bool Test>
using DisableIfVoidT = DisableIfT<Test, void>
 
template<bool Test>
using EnableIfNullptrT = EnableIfT<Test, std::nullptr_t>
 
template<bool Test>
using DisableIfNullptrT = DisableIfT<not Test, std::nullptr_t>
 

関数

template<typename HasMemberFunctionBegin , typename std::enable_if< Traits::HasMemberFunctionBegin< HasMemberFunctionBegin >::value, std::nullptr_t >::type = nullptr>
void MaybeInvokeBegin (HasMemberFunctionBegin &rhs)
 T に T::begin 関数が存在する場合呼び出す。それ以外の場合何もしない。
 
template<typename HasMemberFunctionShow , typename std::enable_if< Traits::HasMemberFunctionShow< HasMemberFunctionShow >::value, std::nullptr_t >::type = nullptr>
void MaybeInvokeShow (const HasMemberFunctionShow &rhs)
 T に T::show const 関数が存在する場合呼び出す。それ以外の場合何もしない。
 
template<typename HasMemberFunctionShowRaw , typename std::enable_if< Traits::HasMemberFunctionShowRaw< HasMemberFunctionShowRaw >::value, std::nullptr_t >::type = nullptr>
void MaybeInvokeShowRaw (const HasMemberFunctionShowRaw &rhs)
 T に T::showRaw const 関数が存在する場合呼び出す。それ以外の場合何もしない。
 
template<typename HasMemberFunctionUpdate , typename std::enable_if< Traits::HasMemberFunctionUpdate< HasMemberFunctionUpdate >::value, std::nullptr_t >::type = nullptr>
void MaybeInvokeUpdate (HasMemberFunctionUpdate &rhs)
 T に T::update 関数が存在する場合呼び出す。それ以外の場合何もしない。
 

型定義詳解

◆ DecayT

template<typename T >
using Udon::Traits::DecayT = typename std::decay<T>::type

◆ DisableIfNullptrT

template<bool Test>
using Udon::Traits::DisableIfNullptrT = DisableIfT<not Test, std::nullptr_t>
覚え書き
Test == true の場合 type は実体化されない
Test == false の場合 type が std::nullptr_t に実体化

◆ DisableIfT

template<bool Test, typename T = void>
using Udon::Traits::DisableIfT = typename std::enable_if<not Test, T>::type

◆ DisableIfVoidT

template<bool Test>
using Udon::Traits::DisableIfVoidT = DisableIfT<Test, void>

◆ EnableIfNullptrT

template<bool Test>
using Udon::Traits::EnableIfNullptrT = EnableIfT<Test, std::nullptr_t>
覚え書き
Test == true の場合 type が std::nullptr_t に実体化
Test == false の場合 type は実体化されない

◆ EnableIfT

template<bool Test, typename T = void>
using Udon::Traits::EnableIfT = typename std::enable_if<Test, T>::type

◆ EnableIfVoidT

template<bool Test>
using Udon::Traits::EnableIfVoidT = EnableIfT<Test, void>

◆ IsArithmetic

template<typename T >
using Udon::Traits::IsArithmetic = std::is_arithmetic<T>

◆ IsArray

template<typename T >
using Udon::Traits::IsArray = std::is_array<T>

◆ IsBool

template<typename T >
using Udon::Traits::IsBool = std::is_same<T, bool>

◆ IsCString

template<typename T >
using Udon::Traits::IsCString = std::is_same<DecayT<T>, const char*>

◆ IsEnum

template<typename T >
using Udon::Traits::IsEnum = std::is_enum<T>

◆ IsFloatingPoint

template<typename T >
using Udon::Traits::IsFloatingPoint = std::is_floating_point<T>

◆ IsIntegral

template<typename T >
using Udon::Traits::IsIntegral = std::is_integral<T>

◆ IsIntegralNotBool

template<typename T >
using Udon::Traits::IsIntegralNotBool = std::integral_constant<bool, IsIntegral<T>::value and not IsBool<T>::value>

◆ IsScalar

template<typename T >
using Udon::Traits::IsScalar = std::is_scalar<T>

◆ RemoveConstT

template<typename T >
using Udon::Traits::RemoveConstT = typename std::remove_const<T>::type

◆ RemoveCVRefT

◆ RemoveReferenceT

template<typename T >
using Udon::Traits::RemoveReferenceT = typename std::remove_reference<T>::type

◆ RemoveVolatileT

template<typename T >
using Udon::Traits::RemoveVolatileT = typename std::remove_volatile<T>::type

関数詳解

◆ MaybeInvokeBegin()

template<typename HasMemberFunctionBegin , typename std::enable_if< Traits::HasMemberFunctionBegin< HasMemberFunctionBegin >::value, std::nullptr_t >::type = nullptr>
void Udon::Traits::MaybeInvokeBegin ( HasMemberFunctionBegin & rhs)

T に T::begin 関数が存在する場合呼び出す。それ以外の場合何もしない。

◆ MaybeInvokeShow()

template<typename HasMemberFunctionShow , typename std::enable_if< Traits::HasMemberFunctionShow< HasMemberFunctionShow >::value, std::nullptr_t >::type = nullptr>
void Udon::Traits::MaybeInvokeShow ( const HasMemberFunctionShow & rhs)

T に T::show const 関数が存在する場合呼び出す。それ以外の場合何もしない。

◆ MaybeInvokeShowRaw()

template<typename HasMemberFunctionShowRaw , typename std::enable_if< Traits::HasMemberFunctionShowRaw< HasMemberFunctionShowRaw >::value, std::nullptr_t >::type = nullptr>
void Udon::Traits::MaybeInvokeShowRaw ( const HasMemberFunctionShowRaw & rhs)

T に T::showRaw const 関数が存在する場合呼び出す。それ以外の場合何もしない。

◆ MaybeInvokeUpdate()

template<typename HasMemberFunctionUpdate , typename std::enable_if< Traits::HasMemberFunctionUpdate< HasMemberFunctionUpdate >::value, std::nullptr_t >::type = nullptr>
void Udon::Traits::MaybeInvokeUpdate ( HasMemberFunctionUpdate & rhs)

T に T::update 関数が存在する場合呼び出す。それ以外の場合何もしない。