|
IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
|
#include <ice/concept/strong_type_value.hxx>Go to the source code of this file.
Classes | |
| struct | ice::StrongNumeric |
| Type tag to enable utility functions for strongly typed numeric values. More... | |
Namespaces | |
| namespace | ice |
| SPDX-License-Identifier: MIT. | |
| namespace | ice::detail |
| namespace | ice::detail::numeric |
Concepts | |
| concept | ice::StrongNumericType |
| Concept used to determine if a struct is considerd a strong number wrapper. | |
Typedefs | |
| template<typename T> | |
| using | ice::StrongNumericBase = typename ice::detail::ExtractMemberType<decltype(&T::value)>::Type |
Functions | |
| template<typename T> requires ice::StrongNumericType<T> | |
| constexpr auto | ice::operator== (T left, T right) noexcept -> bool |
| template<typename T> requires ice::StrongNumericType<T> | |
| constexpr auto | ice::operator<=> (T left, T right) noexcept |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator+ (T left, T right) noexcept -> T |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator- (T left, T right) noexcept -> T |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator- (T left) noexcept -> T |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator* (T left, T right) noexcept -> T |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator* (T left, ice::StrongNumericBase< T > right) noexcept -> T |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator/ (T left, T right) noexcept -> T |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator/ (T left, ice::StrongNumericBase< T > right) noexcept -> T |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator+= (T &left, T right) noexcept -> T & |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator-= (T &left, T right) noexcept -> T & |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator*= (T &left, T right) noexcept -> T & |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator*= (T &left, ice::StrongNumericBase< T > right) noexcept -> T & |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator/= (T &left, T right) noexcept -> T & |
| template<typename T> requires StrongNumericType<T> | |
| constexpr auto | ice::operator/= (T &left, ice::StrongNumericBase< T > right) noexcept -> T & |