Botan 3.8.1
Crypto and TLS for C&
Botan::detail::Container_Strong_Adapter_Base< T > Class Template Reference

#include <strong_type.h>

Inheritance diagram for Botan::detail::Container_Strong_Adapter_Base< T >:
Botan::detail::Strong_Base< T > Botan::detail::Strong_Adapter< T > Botan::detail::Strong_Adapter< T > Botan::detail::Strong_Adapter< T > Botan::Strong< T, TagTypeT, Capabilities > Botan::Strong< T, TagTypeT, Capabilities > Botan::Strong< T, TagTypeT, Capabilities >

Public Types

using const_iterator = typename T::const_iterator
 
using iterator = typename T::iterator
 
using size_type = typename T::size_type
 
using value_type = typename T::value_type
 
using wrapped_type = T
 

Public Member Functions

template<typename U>
requires (concepts::has_bounds_checked_accessors<T>)
decltype(auto) at (U &&i) const noexcept(noexcept(this->get().at(i)))
 
template<typename U>
requires (concepts::has_bounds_checked_accessors<T>)
decltype(auto) at (U &&i) noexcept(noexcept(this->get().at(i)))
 
decltype(auto) begin () const noexcept(noexcept(this->get().begin()))
 
decltype(auto) begin () noexcept(noexcept(this->get().begin()))
 
decltype(auto) cbegin () const noexcept(noexcept(this->get().cbegin()))
 
decltype(auto) cbegin () noexcept(noexcept(this->get().cbegin()))
 
decltype(auto) cend () const noexcept(noexcept(this->get().cend()))
 
decltype(auto) cend () noexcept(noexcept(this->get().cend()))
 
template<typename InputIt>
 Container_Strong_Adapter_Base (InputIt begin, InputIt end)
 
 Container_Strong_Adapter_Base (size_t size)
 
bool empty () const noexcept(noexcept(this->get().empty()))
 
decltype(auto) end () const noexcept(noexcept(this->get().end()))
 
decltype(auto) end () noexcept(noexcept(this->get().end()))
 
constexpr T & get () &
 
constexpr T && get () &&
 
constexpr const T & get () const &
 
constexpr const T && get () const &&
 
template<typename U>
decltype(auto) operator[] (U &&i) const noexcept(noexcept(this->get().operator[](i)))
 
template<typename U>
decltype(auto) operator[] (U &&i) noexcept(noexcept(this->get().operator[](i)))
 
void reserve (size_type size) noexcept(noexcept(this->get().reserve(size)))
 
void resize (size_type size) noexcept(noexcept(this->get().resize(size)))
 
size_type size () const noexcept(noexcept(this->get().size()))
 

Detailed Description

template<concepts::container T>
class Botan::detail::Container_Strong_Adapter_Base< T >

Definition at line 73 of file strong_type.h.

Member Typedef Documentation

◆ const_iterator

template<concepts::container T>
using Botan::detail::Container_Strong_Adapter_Base< T >::const_iterator = typename T::const_iterator

Definition at line 78 of file strong_type.h.

◆ iterator

template<concepts::container T>
using Botan::detail::Container_Strong_Adapter_Base< T >::iterator = typename T::iterator

Definition at line 77 of file strong_type.h.

◆ size_type

template<concepts::container T>
using Botan::detail::Container_Strong_Adapter_Base< T >::size_type = typename T::size_type

Definition at line 76 of file strong_type.h.

◆ value_type

template<concepts::container T>
using Botan::detail::Container_Strong_Adapter_Base< T >::value_type = typename T::value_type

Definition at line 75 of file strong_type.h.

◆ wrapped_type

template<typename T>
using Botan::detail::Strong_Base< T >::wrapped_type = T
inherited

Definition at line 40 of file strong_type.h.

Constructor & Destructor Documentation

◆ Container_Strong_Adapter_Base() [1/2]

template<concepts::container T>
Botan::detail::Container_Strong_Adapter_Base< T >::Container_Strong_Adapter_Base ( size_t size)
inlineexplicit

◆ Container_Strong_Adapter_Base() [2/2]

template<concepts::container T>
template<typename InputIt>
Botan::detail::Container_Strong_Adapter_Base< T >::Container_Strong_Adapter_Base ( InputIt begin,
InputIt end )
inline

Definition at line 88 of file strong_type.h.

decltype(auto) begin() noexcept(noexcept(this->get().begin()))
Definition strong_type.h:91
decltype(auto) end() noexcept(noexcept(this->get().end()))
Definition strong_type.h:95

References begin(), Container_Strong_Adapter_Base(), and end().

Member Function Documentation

◆ at() [1/2]

template<concepts::container T>
template<typename U>
requires (concepts::has_bounds_checked_accessors<T>)
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::at ( U && i) const
inlinenoexcept

Definition at line 138 of file strong_type.h.

140 {
141 return this->get().at(std::forward<U>(i));
142 }
constexpr T & get() &
Definition strong_type.h:51

References Botan::detail::Strong_Base< T >::get().

◆ at() [2/2]

template<concepts::container T>
template<typename U>
requires (concepts::has_bounds_checked_accessors<T>)
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::at ( U && i)
inlinenoexcept

Definition at line 145 of file strong_type.h.

147 {
148 return this->get().at(std::forward<U>(i));
149 }

References Botan::detail::Strong_Base< T >::get().

◆ begin() [1/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::begin ( ) const
inlinenoexcept

Definition at line 93 of file strong_type.h.

93{ return this->get().begin(); }

References Botan::detail::Strong_Base< T >::get().

◆ begin() [2/2]

◆ cbegin() [1/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::cbegin ( ) const
inlinenoexcept

Definition at line 101 of file strong_type.h.

101{ return this->get().cbegin(); }

References Botan::detail::Strong_Base< T >::get().

◆ cbegin() [2/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::cbegin ( )
inlinenoexcept

Definition at line 99 of file strong_type.h.

99{ return this->get().cbegin(); }

References Botan::detail::Strong_Base< T >::get().

◆ cend() [1/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::cend ( ) const
inlinenoexcept

Definition at line 105 of file strong_type.h.

105{ return this->get().cend(); }

References Botan::detail::Strong_Base< T >::get().

◆ cend() [2/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::cend ( )
inlinenoexcept

Definition at line 103 of file strong_type.h.

103{ return this->get().cend(); }

References Botan::detail::Strong_Base< T >::get().

◆ empty()

template<concepts::container T>
bool Botan::detail::Container_Strong_Adapter_Base< T >::empty ( ) const
inlinenoexcept

Definition at line 109 of file strong_type.h.

111 {
112 return this->get().empty();
113 }

References empty(), and Botan::detail::Strong_Base< T >::get().

Referenced by empty(), and Botan::TLS::Client_Hello_12::session_handle().

◆ end() [1/2]

template<concepts::container T>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::end ( ) const
inlinenoexcept

Definition at line 97 of file strong_type.h.

97{ return this->get().end(); }

References Botan::detail::Strong_Base< T >::get().

◆ end() [2/2]

◆ get() [1/4]

template<typename T>
T & Botan::detail::Strong_Base< T >::get ( ) &
inlineconstexprinherited

Definition at line 51 of file strong_type.h.

51{ return m_value; }

Referenced by Botan::detail::Strong_Adapter< T >::_const_time_poison(), Botan::detail::Strong_Adapter< T >::_const_time_unpoison(), Botan::detail::Strong_Adapter< T >::all_vartime(), Botan::detail::Strong_Adapter< T >::any_vartime(), Botan::detail::Strong_Adapter< T >::as(), Botan::detail::Container_Strong_Adapter_Base< T >::at(), Botan::detail::Container_Strong_Adapter_Base< T >::at(), Botan::detail::Strong_Adapter< T >::at(), Botan::detail::Strong_Adapter< T >::at(), Botan::detail::Strong_Adapter< T >::back(), Botan::detail::Strong_Adapter< T >::back(), Botan::detail::Container_Strong_Adapter_Base< T >::begin(), Botan::detail::Container_Strong_Adapter_Base< T >::begin(), Botan::detail::Strong_Adapter< T >::capacity(), Botan::detail::Container_Strong_Adapter_Base< T >::cbegin(), Botan::detail::Container_Strong_Adapter_Base< T >::cbegin(), Botan::detail::Container_Strong_Adapter_Base< T >::cend(), Botan::detail::Container_Strong_Adapter_Base< T >::cend(), Botan::chain_lengths(), Botan::compute_root(), Botan::detail::Strong_Adapter< T >::data(), Botan::detail::Strong_Adapter< T >::data(), Botan::detail::Container_Strong_Adapter_Base< T >::empty(), Botan::detail::Container_Strong_Adapter_Base< T >::end(), Botan::detail::Container_Strong_Adapter_Base< T >::end(), Botan::detail::Strong_Adapter< T >::equals(), Botan::GF_Mask::expand(), Botan::detail::Strong_Adapter< T >::flip(), Botan::detail::Strong_Adapter< T >::flip(), Botan::detail::Strong_Adapter< T >::from_bytes(), Botan::detail::Strong_Adapter< T >::front(), Botan::detail::Strong_Adapter< T >::front(), Botan::detail::Strong_Adapter< T >::hamming_weight(), Botan::detail::Strong_Adapter< T >::has_odd_hamming_weight(), Botan::ht_sign(), Botan::ht_verify(), Botan::GF_Mask::if_set_return(), Botan::GF_Mask::is_equal(), Botan::GF_Mask::is_lte(), Botan::GF_Mask::is_zero(), Botan::detail::Strong_Adapter< T >::none_vartime(), Botan::operator&(), Botan::operator&(), Botan::operator&(), Botan::operator&=(), Botan::operator&=(), Botan::Classic_McEliece_GF::operator*(), Botan::operator*(), Botan::operator*(), Botan::operator*(), Botan::operator*=(), Botan::operator*=(), Botan::operator+(), Botan::operator+(), Botan::operator+(), Botan::operator++(), Botan::operator++(), Botan::operator+=(), Botan::operator+=(), Botan::operator-(), Botan::operator-(), Botan::operator-(), Botan::operator--(), Botan::operator--(), Botan::operator-=(), Botan::operator-=(), Botan::operator/(), Botan::operator/(), Botan::operator/(), Botan::operator/=(), Botan::operator/=(), Botan::operator<<(), Botan::operator<<(), Botan::operator<<(), Botan::operator<<(), Botan::operator<<=(), Botan::operator<<=(), Botan::operator<=>(), Botan::operator<=>(), Botan::operator<=>(), Botan::operator==(), Botan::operator==(), Botan::operator==(), Botan::operator>>(), Botan::operator>>(), Botan::operator>>(), Botan::operator>>=(), Botan::operator>>=(), Botan::detail::Container_Strong_Adapter_Base< T >::operator[](), Botan::detail::Container_Strong_Adapter_Base< T >::operator[](), Botan::operator^(), Botan::operator^(), Botan::operator^(), Botan::operator^=(), Botan::operator^=(), Botan::operator|(), Botan::operator|(), Botan::operator|(), Botan::operator|=(), Botan::operator|=(), Botan::HSS_LMS_Params::params_at_level(), Botan::detail::Strong_Adapter< T >::pop_back(), Botan::TLS::Cipher_State::psk(), Botan::detail::Strong_Adapter< T >::push_back(), Botan::Classic_McEliece_Encryptor::raw_kem_encrypt(), Botan::detail::Container_Strong_Adapter_Base< T >::reserve(), Botan::detail::Strong_Adapter< T >::reserve(), Botan::detail::Container_Strong_Adapter_Base< T >::resize(), Botan::GF_Mask::select(), Botan::GF_Mask::select(), Botan::detail::Strong_Adapter< T >::set(), Botan::Sphincs_Address::set_chain_address(), Botan::Sphincs_Address::set_hash_address(), Botan::Sphincs_Address::set_keypair_address(), Botan::Sphincs_Address::set_layer_address(), Botan::Sphincs_Address::set_tree_address(), Botan::Sphincs_Address::set_tree_height(), Botan::Sphincs_Address::set_tree_index(), Botan::HSS_LMS_PrivateKeyInternal::sign(), Botan::LMS_PrivateKey::sign_and_get_pk(), Botan::HSS_Signature::signed_pub_key(), Botan::detail::Container_Strong_Adapter_Base< T >::size(), Botan::detail::Strong_Adapter< T >::subvector(), Botan::detail::Strong_Adapter< T >::subvector(), Botan::detail::Strong_Adapter< T >::subvector_replace(), Botan::detail::Strong_Adapter< T >::to_bytes(), Botan::detail::Strong_Adapter< T >::to_bytes(), Botan::detail::Strong_Adapter< T >::to_string(), Botan::treehash(), Botan::detail::Strong_Adapter< T >::unset(), Botan::wots_public_key_from_signature(), and Botan::x448().

◆ get() [2/4]

template<typename T>
T && Botan::detail::Strong_Base< T >::get ( ) &&
inlineconstexprinherited

Definition at line 55 of file strong_type.h.

55{ return std::move(m_value); }

◆ get() [3/4]

template<typename T>
const T & Botan::detail::Strong_Base< T >::get ( ) const &
inlineconstexprinherited

Definition at line 53 of file strong_type.h.

53{ return m_value; }

◆ get() [4/4]

template<typename T>
const T && Botan::detail::Strong_Base< T >::get ( ) const &&
inlineconstexprinherited

Definition at line 57 of file strong_type.h.

57{ return std::move(m_value); }

◆ operator[]() [1/2]

template<concepts::container T>
template<typename U>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::operator[] ( U && i) const
inlinenoexcept

Definition at line 128 of file strong_type.h.

128 {
129 return this->get()[std::forward<U>(i)];
130 }

References Botan::detail::Strong_Base< T >::get().

◆ operator[]() [2/2]

template<concepts::container T>
template<typename U>
decltype(auto) Botan::detail::Container_Strong_Adapter_Base< T >::operator[] ( U && i)
inlinenoexcept

Definition at line 133 of file strong_type.h.

133 {
134 return this->get()[std::forward<U>(i)];
135 }

References Botan::detail::Strong_Base< T >::get().

◆ reserve()

template<concepts::container T>
void Botan::detail::Container_Strong_Adapter_Base< T >::reserve ( size_type size)
inlinenoexcept

Definition at line 121 of file strong_type.h.

123 {
124 this->get().reserve(size);
125 }

References Botan::detail::Strong_Base< T >::get(), and size().

◆ resize()

template<concepts::container T>
void Botan::detail::Container_Strong_Adapter_Base< T >::resize ( size_type size)
inlinenoexcept

Definition at line 115 of file strong_type.h.

117 {
118 this->get().resize(size);
119 }

References Botan::detail::Strong_Base< T >::get(), and size().

◆ size()


The documentation for this class was generated from the following file: