λ61
Loading...
Searching...
No Matches
meta.hpp File Reference
#include <concepts>
#include <type_traits>
#include <functional>
#include <stdexcept>

Go to the source code of this file.

Classes

class  l61::meta::nulling::NullAccessException
class  l61::meta::nulling::NullableMark
struct  l61::meta::nulling::null_t
struct  l61::meta::null_t
class  l61::meta::NullableMark

Namespaces

namespace  l61
namespace  l61::meta
namespace  l61::meta::nulling

Concepts

concept  l61::meta::isNullableType
concept  l61::meta::castToZeroCompatible
concept  l61::meta::canStoreBytesOf
concept  l61::meta::safeCanStoreBytesOf
concept  l61::meta::stdHashCompatible

Functions

template<typename cast_type, typename obj_type, typename T = obj_type, typename Tx = std::conditional_t<std::is_pointer_v<cast_type>, cast_type, std::add_pointer_t<cast_type>>>
__inline constexpr Tx l61::meta::dyn_cast (obj_type obj)
template<typename T>
__inline constexpr T l61::meta::dyn_cast (std::nullptr_t)
template<typename cast_type, typename obj_type, typename T = obj_type, typename Tx = std::conditional_t<std::is_pointer_v<cast_type>, cast_type, std::add_pointer_t<cast_type>>>
__inline constexpr Tx l61::dyn_cast (obj_type obj)

Variables

template<typename>
constexpr bool l61::meta::always_false = false
template<typename>
constexpr bool l61::meta::always_true = true
constexpr nulling::null_t l61::meta::null
constexpr nulling::null_t l61::null