Botan 3.6.1
Crypto and TLS for C&
|
Public Header. More...
#include <ostream>
#include <span>
#include <botan/concepts.h>
Go to the source code of this file.
Namespaces | |
namespace | Botan |
namespace | Botan::detail |
Typedefs | |
template<typename T > | |
using | Botan::strong_type_wrapped_type = typename detail::wrapped_type_helper<std::remove_cvref_t<T>>::type |
Extracts the wrapped type from a strong type. | |
Functions | |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | Botan::operator& (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator& (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator& (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator&= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | Botan::operator&= (Strong< T1, Tags... > &a, T2 b) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | Botan::operator* (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator* (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator* (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator*= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | Botan::operator*= (Strong< T1, Tags... > &a, T2 b) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | Botan::operator+ (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator+ (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator+ (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator++ (Strong< T, Tags... > &a) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator++ (Strong< T, Tags... > &a, int) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator+= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | Botan::operator+= (Strong< T1, Tags... > &a, T2 b) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | Botan::operator- (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator- (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator- (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator-- (Strong< T, Tags... > &a) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator-- (Strong< T, Tags... > &a, int) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator-= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | Botan::operator-= (Strong< T1, Tags... > &a, T2 b) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | Botan::operator/ (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator/ (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator/ (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator/= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | Botan::operator/= (Strong< T1, Tags... > &a, T2 b) |
template<typename T , typename... Tags> requires (concepts::streamable<T>) | |
decltype(auto) | Botan::operator<< (std::ostream &os, const Strong< T, Tags... > &v) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | Botan::operator<< (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator<< (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator<< (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator<<= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | Botan::operator<<= (Strong< T1, Tags... > &a, T2 b) |
template<typename T , typename... Tags> requires (std::three_way_comparable<T>) | |
auto | Botan::operator<=> (const Strong< T, Tags... > &lhs, const Strong< T, Tags... > &rhs) |
template<std::integral T1, std::integral T2, typename... Tags> | |
auto | Botan::operator<=> (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> | |
auto | Botan::operator<=> (T1 a, Strong< T2, Tags... > b) |
template<typename T , typename... Tags> requires (std::equality_comparable<T>) | |
bool | Botan::operator== (const Strong< T, Tags... > &lhs, const Strong< T, Tags... > &rhs) |
template<std::integral T1, std::integral T2, typename... Tags> | |
auto | Botan::operator== (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> | |
auto | Botan::operator== (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | Botan::operator>> (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator>> (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator>> (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator>>= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | Botan::operator>>= (Strong< T1, Tags... > &a, T2 b) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | Botan::operator^ (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator^ (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator^ (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator^= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | Botan::operator^= (Strong< T1, Tags... > &a, T2 b) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | Botan::operator| (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator| (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | Botan::operator| (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | Botan::operator|= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | Botan::operator|= (Strong< T1, Tags... > &a, T2 b) |
template<typename T > | |
constexpr decltype(auto) | Botan::unwrap_strong_type (T &&t) |
Generically unwraps a strong type to its underlying type. | |
template<typename T , typename ParamT > requires std::constructible_from<T, ParamT> || (concepts::strong_type<T> && std::constructible_from<typename T::wrapped_type, ParamT>) | |
constexpr decltype(auto) | Botan::wrap_strong_type (ParamT &&t) |
Wraps a value into a caller-defined (strong) type. | |
Variables | |
template<typename CapabilityT , typename... Tags> | |
constexpr bool | Botan::detail::has_capability = (std::is_same_v<CapabilityT, Tags> || ...) |
template<typename T > | |
constexpr bool | Botan::is_strong_span_v = is_strong_span<T>::value |
Public Header.
Definition in file strong_type.h.