OpenVPN 3 Core Library
Loading...
Searching...
No Matches
intrinsic_type.hpp File Reference
#include <type_traits>
Include dependency graph for intrinsic_type.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openvpn::IntrinsicType< BaseT, T >
 CRTP type designed to allow creation of strong types based on intrinsics. More...
 

Namespaces

namespace  openvpn
 

Functions

template<typename BaseT , typename T >
requires std::is_arithmetic_v<T>
constexpr bool openvpn::operator== (IntrinsicType< BaseT, T > lhs, IntrinsicType< BaseT, T > rhs) noexcept
 Equality comparison operator.
 
template<typename BaseT , typename T >
requires std::is_arithmetic_v<T>
constexpr auto openvpn::operator<=> (IntrinsicType< BaseT, T > lhs, IntrinsicType< BaseT, T > rhs) noexcept
 Equality comparison operator.
 
template<typename BaseT , typename T >
requires std::is_arithmetic_v<T>
constexpr BaseT openvpn::operator+ (IntrinsicType< BaseT, T > lhs, IntrinsicType< BaseT, T > rhs) noexcept
 Addition operator.
 
template<typename BaseT , typename T >
requires std::is_arithmetic_v<T>
constexpr BaseT openvpn::operator- (IntrinsicType< BaseT, T > lhs, IntrinsicType< BaseT, T > rhs) noexcept
 Subtraction operator.
 
template<typename BaseT , typename T >
requires std::is_arithmetic_v<T>
constexpr BaseT openvpn::operator* (IntrinsicType< BaseT, T > lhs, IntrinsicType< BaseT, T > rhs) noexcept
 Multiplication operator.
 
template<typename BaseT , typename T >
requires std::is_arithmetic_v<T>
constexpr BaseT openvpn::operator/ (IntrinsicType< BaseT, T > lhs, IntrinsicType< BaseT, T > rhs) noexcept
 Division operator.
 
template<typename BaseT , typename T >
requires std::is_integral_v<T>
constexpr BaseT openvpn::operator~ (IntrinsicType< BaseT, T > t) noexcept
 Performs bitwise NOT operation on an IntrinsicType.
 
template<typename BaseT , typename T >
requires std::is_integral_v<T>
constexpr BaseT openvpn::operator| (IntrinsicType< BaseT, T > l, IntrinsicType< BaseT, T > r) noexcept
 Performs bitwise OR operation between two IntrinsicType objects.
 
template<typename BaseT , typename T >
requires std::is_integral_v<T>
constexpr BaseT openvpn::operator& (IntrinsicType< BaseT, T > l, IntrinsicType< BaseT, T > r) noexcept
 Performs bitwise AND operation between two IntrinsicType objects.