Iros
 
Loading...
Searching...
No Matches
language.h File Reference

Go to the source code of this file.

Classes

struct  di::meta::detail::LanguageFunctionReturnHelper< R(Args...)>
 
struct  di::meta::IsFunctionTo< R >
 
struct  di::meta::detail::RemoveExtentHelper< T >
 
struct  di::meta::detail::RemoveExtentHelper< T[]>
 
struct  di::meta::detail::RemoveExtentHelper< T[N]>
 
struct  di::meta::detail::RemoveAllExtentsHelper< T >
 
struct  di::meta::detail::RemoveAllExtentsHelper< T >
 
struct  di::meta::detail::MemberPointerValueHelper< T >
 
struct  di::meta::detail::MemberPointerValueHelper< Value Class::* >
 
struct  di::meta::detail::MemberPointerClassHelper< T >
 
struct  di::meta::detail::MemberPointerClassHelper< Value Class::* >
 
struct  di::meta::detail::MakeSignedHelper< T >
 
struct  di::meta::detail::MakeSignedHelper< T >
 
struct  di::meta::detail::MakeSignedHelper< unsigned char >
 
struct  di::meta::detail::MakeSignedHelper< unsigned short >
 
struct  di::meta::detail::MakeSignedHelper< unsigned int >
 
struct  di::meta::detail::MakeSignedHelper< unsigned long >
 
struct  di::meta::detail::MakeSignedHelper< unsigned long long >
 
struct  di::meta::detail::MakeSignedHelper< char8_t >
 
struct  di::meta::detail::MakeSignedHelper< char16_t >
 
struct  di::meta::detail::MakeSignedHelper< char32_t >
 
struct  di::meta::detail::MakeSignedHelper< float >
 
struct  di::meta::detail::MakeSignedHelper< double >
 
struct  di::meta::detail::MakeUnsignedHelper< T >
 
struct  di::meta::detail::MakeUnsignedHelper< T >
 
struct  di::meta::detail::MakeUnsignedHelper< char >
 
struct  di::meta::detail::MakeUnsignedHelper< signed char >
 
struct  di::meta::detail::MakeUnsignedHelper< short >
 
struct  di::meta::detail::MakeUnsignedHelper< int >
 
struct  di::meta::detail::MakeUnsignedHelper< long >
 
struct  di::meta::detail::MakeUnsignedHelper< long long >
 
struct  di::meta::detail::MakeUnsignedHelper< char8_t >
 
struct  di::meta::detail::MakeUnsignedHelper< char16_t >
 
struct  di::meta::detail::MakeUnsignedHelper< char32_t >
 
struct  di::meta::detail::AddLValueReferenceHelper< T >
 
struct  di::meta::detail::AddLValueReferenceHelper< T >
 
struct  di::meta::detail::AddRValueReferenceHelper< T >
 
struct  di::meta::detail::AddRValueReferenceHelper< T >
 
struct  di::meta::detail::AddPointerHelper< T >
 
struct  di::meta::detail::AddPointerHelper< T >
 
struct  di::meta::detail::LikeHelper< T, U >
 
struct  di::meta::detail::LikeHelper< T const, U >
 
struct  di::meta::detail::LikeHelper< T volatile, U >
 
struct  di::meta::detail::LikeHelper< T const volatile, U >
 
struct  di::meta::detail::LikeHelper< T &, U >
 
struct  di::meta::detail::LikeHelper< T const &, U >
 
struct  di::meta::detail::LikeHelper< T volatile &, U >
 
struct  di::meta::detail::LikeHelper< T const volatile &, U >
 
struct  di::meta::detail::LikeHelper< T &&, U >
 
struct  di::meta::detail::LikeHelper< T const &&, U >
 
struct  di::meta::detail::LikeHelper< T volatile &&, U >
 
struct  di::meta::detail::LikeHelper< T const volatile &&, U >
 
struct  di::meta::detail::RemovePointerHelper< T >
 
struct  di::meta::detail::RemovePointerHelper< T * >
 
struct  di::meta::detail::RemovePointerHelper< T *const >
 
struct  di::meta::detail::RemovePointerHelper< T *volatile >
 
struct  di::meta::detail::RemovePointerHelper< T *const volatile >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...)>
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) volatile >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const volatile >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...)& >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const & >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) volatile & >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const volatile & >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) && >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const && >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) volatile && >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const volatile && >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) volatile noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const volatile noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) &noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const &noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) volatile &noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const volatile &noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) &&noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const &&noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) volatile &&noexcept >
 
struct  di::meta::detail::RemoveFunctionQualifiersHelper< R(Args...) const volatile &&noexcept >
 

Namespaces

namespace  di
 
namespace  di::concepts
 
namespace  di::concepts::detail
 
namespace  di::meta
 
namespace  di::meta::detail
 

Concepts

concept  di::concepts::Const
 
concept  di::concepts::LValueReference
 
concept  di::concepts::ConstLValueReference
 
concept  di::concepts::RValueReference
 
concept  di::concepts::MutableRValueReference
 
concept  di::concepts::Reference
 
concept  di::concepts::Pointer
 
concept  di::concepts::LanguageFunction
 
concept  di::concepts::BoundedLanguageArray
 
concept  di::concepts::UnboundedLanguageArray
 
concept  di::concepts::LanguageArray
 
concept  di::concepts::MemberPointer
 
concept  di::concepts::MemberFunctionPointer
 
concept  di::concepts::MemberObjectPointer
 
concept  di::concepts::NullPointer
 
concept  di::concepts::InitializerList
 
concept  di::concepts::Aggregate
 
concept  di::concepts::Integer
 
concept  di::concepts::Integral
 
concept  di::concepts::FloatingPoint
 
concept  di::concepts::Arithmetic
 
concept  di::concepts::Signed
 
concept  di::concepts::SignedInteger
 
concept  di::concepts::UnsignedInteger
 
concept  di::concepts::SignedIntegral
 
concept  di::concepts::UnsignedIntegral
 
concept  di::concepts::Class
 
concept  di::concepts::Union
 
concept  di::concepts::Enum
 
concept  di::concepts::IntegralOrEnum
 
concept  di::concepts::Scalar
 
concept  di::concepts::Object
 
concept  di::concepts::BaseOf
 
concept  di::concepts::UniqueObjectRepresentation
 

Typedefs

template<concepts::LanguageFunction Fun>
using di::meta::LanguageFunctionReturn = Type<detail::LanguageFunctionReturnHelper<Fun>>
 
template<typename T>
using di::meta::RemoveExtent = Type<detail::RemoveExtentHelper<T>>
 
template<typename T>
using di::meta::RemoveAllExtents = Type<detail::RemoveAllExtentsHelper<T>>
 
template<concepts::MemberPointer T>
using di::meta::MemberPointerValue = Type<detail::MemberPointerValueHelper<RemoveCV<T>>>
 
template<concepts::MemberPointer T>
using di::meta::MemberPointerClass = Type<detail::MemberPointerClassHelper<RemoveCV<T>>>
 
template<concepts::Enum T>
using di::meta::UnderlyingType = __underlying_type(T)
 
template<typename T>
using di::meta::MakeSigned = detail::MakeSignedHelper<RemoveCV<T>>::Type
 
template<typename T>
using di::meta::MakeUnsigned = detail::MakeUnsignedHelper<RemoveCV<T>>::Type
 
template<typename T>
using di::meta::AddConst = T const
 
template<typename T>
using di::meta::AddVolatile = T volatile
 
template<typename T>
using di::meta::AddCV = T const volatile
 
template<typename T>
using di::meta::AddLValueReference = Type<detail::AddLValueReferenceHelper<T>>
 
template<typename T>
using di::meta::AddRValueReference = Type<detail::AddRValueReferenceHelper<T>>
 
template<typename T>
using di::meta::AddPointer = Type<detail::AddPointerHelper<T>>
 This is a helper template which will convert reference types into their corresponding pointer type, while also working for non-references.
 
template<typename T, typename U>
using di::meta::Like = Type<detail::LikeHelper<T, U>>
 
template<typename T>
using di::meta::RemoveRValueReference = Conditional<concepts::RValueReference<T>, RemoveReference<T>, T>
 
template<typename T>
using di::meta::RemovePointer = Type<detail::RemovePointerHelper<T>>
 
template<typename T>
using di::meta::RemoveFunctionQualifiers = Type<detail::RemoveFunctionQualifiersHelper<T>>
 
template<typename T>
using di::meta::Decay
 

Variables

template<typename T>
constexpr bool di::concepts::detail::const_helper = false
 
template<typename T>
constexpr bool di::concepts::detail::const_helper< T const > = true
 
template<typename T>
constexpr bool di::concepts::detail::lvalue_reference_helper = false
 
template<typename T>
constexpr bool di::concepts::detail::lvalue_reference_helper< T & > = true
 
template<typename T>
constexpr bool di::concepts::detail::rvalue_reference_helper = false
 
template<typename T>
constexpr bool di::concepts::detail::rvalue_reference_helper< T && > = true
 
template<typename T>
constexpr bool di::concepts::detail::pointer_helper = false
 
template<typename T>
constexpr bool di::concepts::detail::pointer_helper< T * > = true
 
template<typename T>
constexpr bool di::concepts::detail::bounded_language_array_helper = false
 
template<typename T, usize N>
constexpr bool di::concepts::detail::bounded_language_array_helper< T[N]> = true
 
template<typename T>
constexpr bool di::concepts::detail::unbounded_language_array_helper = false
 
template<typename T>
constexpr bool di::concepts::detail::unbounded_language_array_helper< T[]> = true
 
template<typename T>
constexpr auto di::meta::ArrayRank = 0ZU
 
template<typename T>
constexpr auto di::meta::ArrayRank< T[]> = 1 + ArrayRank<T>
 
template<typename T, usize N>
constexpr auto di::meta::ArrayRank< T[N]> = 1 + ArrayRank<T>
 
template<typename T, types::size_t level = 0>
constexpr auto di::meta::Extent = 0ZU
 
template<typename T, usize level>
constexpr auto di::meta::Extent< T[], level > = Extent<T, level - 1>
 
template<typename T, usize size>
constexpr auto di::meta::Extent< T[size], 0 > = size
 
template<typename T, usize size, usize level>
constexpr auto di::meta::Extent< T[size], level > = Extent<T, level - 1>
 
template<typename T>
constexpr bool di::concepts::detail::member_pointer_helper = false
 
template<typename T, typename U>
constexpr bool di::concepts::detail::member_pointer_helper< T U::* > = true