Botan 3.9.0
Crypto and TLS for C&
stl_util.h File Reference

Internal Header. More...

#include <botan/assert.h>
#include <botan/concepts.h>
#include <botan/secmem.h>
#include <botan/strong_type.h>
#include <algorithm>
#include <functional>
#include <optional>
#include <span>
#include <string>
#include <tuple>
#include <variant>
#include <vector>

Go to the source code of this file.

Classes

class  Botan::BufferSlicer
class  Botan::BufferStuffer
 Helper class to ease in-place marshalling of concatenated fixed-length values. More...
struct  Botan::overloaded< Ts >
class  Botan::scoped_cleanup< FunT >
 Helper class to create a RAII-style cleanup callback. More...
class  Botan::StringLiteral< N >

Namespaces

namespace  Botan
namespace  Botan::detail

Macros

#define BOTAN_ASSERT_IS_SOME(v)

Functions

template<typename T>
Botan::assert_is_some (std::optional< T > v, const char *expr, const char *func, const char *file, int line)
template<typename OutR = detail::AutoDetect, ranges::spanable_range... Rs>
requires (all_same_v<std::ranges::range_value_t<Rs>...>)
constexpr auto Botan::concat (Rs &&... ranges)
template<ranges::spanable_range OutR, ranges::spanable_range... Rs>
requires (concepts::reservable_container<OutR> || ranges::statically_spanable_range<OutR>)
constexpr OutR Botan::detail::concatenate (Rs &&... ranges)
template<typename GeneralVariantT, typename SpecialT>
requires (std::is_constructible_v<GeneralVariantT, std::decay_t<SpecialT>>)
constexpr GeneralVariantT Botan::generalize_to (SpecialT &&specific)
 Converts a given variant into another variant-ish whose type states are a super set of the given variant.
template<typename GeneralVariantT, typename... SpecialTs>
constexpr GeneralVariantT Botan::generalize_to (std::variant< SpecialTs... > specific)
 Converts a given variant into another variant-ish whose type states are a super set of the given variant.
template<typename... Alts, typename... Ts>
constexpr bool Botan::holds_any_of (const std::variant< Ts... > &v) noexcept
template<typename GeneralVariantT, typename SpecialT>
constexpr bool Botan::is_generalizable_to (const SpecialT &) noexcept
template<typename GeneralVariantT, typename... SpecialTs>
constexpr bool Botan::is_generalizable_to (const std::variant< SpecialTs... > &) noexcept
template<typename T, typename Pred>
void Botan::map_remove_if (Pred pred, T &assoc)
template<typename T>
requires std::is_default_constructible_v<T>
constexpr auto Botan::out_opt (std::optional< T > &outopt) noexcept
template<typename T>
constexpr auto Botan::out_ptr (T &outptr) noexcept
template<class... Ts>
 Botan::overloaded (Ts...) -> overloaded< Ts... >
template<typename RetT, typename KeyT, typename ReducerT>
requires std::is_convertible_v<ReducerT, std::function<RetT(RetT, const KeyT&)>>
RetT Botan::reduce (const std::vector< KeyT > &keys, RetT acc, ReducerT reducer)
template<typename T>
requires std::is_enum_v<T>
auto Botan::to_underlying (T e) noexcept
template<typename T, typename OT>
bool Botan::value_exists (const std::vector< T > &vec, const OT &val)

Detailed Description

Internal Header.

Definition in file stl_util.h.

Macro Definition Documentation

◆ BOTAN_ASSERT_IS_SOME

#define BOTAN_ASSERT_IS_SOME ( v)
Value:
assert_is_some(v, #v, __func__, __FILE__, __LINE__)

Definition at line 391 of file stl_util.h.

Referenced by Botan::AlternativeName::count(), and Botan::OID::encode_into().