Classes | Namespaces | Macros | Functions
small_vector.h File Reference
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <initializer_list>
#include <iterator>
#include <limits>
#include <memory>
#include <new>
#include <type_traits>
#include <utility>
#include <cstdio>
#include <cstdlib>

Classes

struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::allocations_are_movable< A >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::allocations_are_swappable< A >
 
class  PLMD::gch::detail::allocator_inliner< Allocator, AvailableForEBO >
 
class  PLMD::gch::detail::allocator_inliner< Allocator, false >
 
class  PLMD::gch::detail::allocator_inliner< Allocator, true >
 
class  PLMD::gch::detail::allocator_interface< Allocator >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::bypass_tag
 
struct  PLMD::gch::default_buffer_size< Allocator >
 
struct  PLMD::gch::default_buffer_size< Allocator >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_alloc_construct< A, V, Args >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_alloc_construct_check< Void, A, V, Args >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_alloc_construct_check< void_t< decltype(std::declval< A & >().construct(std::declval< V * >(), std::declval< Args >()...))>, A, V, Args... >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_alloc_construct_impl< Void, A, V, Args >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_alloc_construct_impl< typename std::enable_if< is_complete< V >::value >::type, A, V, Args... >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_alloc_destroy< A, V, Enable >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_alloc_destroy< A, V, typename std::enable_if< is_complete< V >::value >::type >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_alloc_destroy_impl< Void, A, V >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_alloc_destroy_impl< void_t< decltype(std::declval< A & >().destroy(std::declval< V * >()))>, A, V >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_ptr_traits_to_address< typename, typename >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::has_ptr_traits_to_address< P, void_t< decltype(std::pointer_traits< P >::to_address(std::declval< P >()))> >
 
class  PLMD::gch::detail::inline_storage< T, InlineCapacity >
 
class  PLMD::gch::detail::inline_storage< T, 0 >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_complete< typename, typename >
 
struct  PLMD::gch::default_buffer_size< Allocator >::is_complete< typename, Enable >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_complete< U, decltype(static_cast< void >(sizeof(U)))>
 
struct  PLMD::gch::default_buffer_size< Allocator >::is_complete< U, decltype(static_cast< void >(sizeof(U)))>
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_contiguous_iterator< InputIt >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_convertible_pointer< From, To >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::is_emplace_constructible< Args >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::is_emplace_constructible_impl< Void, AI, V, Args >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::is_emplace_constructible_impl< void_t< typename std::enable_if< is_complete< V >::value >::type, decltype(std::declval< AI & >().construct(std::declval< V * >(), std::declval< Args >()...))>, AI, V, Args... >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::is_eraseable< AI, Enable >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::is_eraseable< AI, void_t< decltype(std::declval< AI & >().destroy(std::declval< value_ty * >()))> >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::is_explicitly_copy_insertable< V >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::is_explicitly_move_insertable< V >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::is_explicitly_nothrow_copy_insertable< V >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::is_explicitly_nothrow_move_insertable< V >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_memcpyable< QualifiedFrom, QualifiedTo, Enable >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_memcpyable< QualifiedFrom, QualifiedTo, typename std::enable_if< is_complete< QualifiedFrom >::value >::type >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_memcpyable_integral< typename, typename, typename >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_memcpyable_integral< From, To, typename std::enable_if< is_complete< From >::value >::type >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_memcpyable_iterator< InputIt >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_memcpyable_iterator< std::move_iterator< InputIt > >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::is_nothrow_emplace_constructible< Args >
 
struct  PLMD::gch::detail::small_vector_adl::is_nothrow_swappable< T, Enable >
 
struct  PLMD::gch::detail::small_vector_adl::is_nothrow_swappable< T, decltype(swap(std::declval< T & >(), std::declval< T & >()))>
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_small_vector_iterator< Iterator >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_small_vector_iterator< small_vector_iterator< Ts... > >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_trivially_constructible< V, Args >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_trivially_constructible_impl< Void, T, Args >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_trivially_constructible_impl< typename std::enable_if< is_complete< V >::value >::type, V, Args... >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_trivially_destructible< V, Enable >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_trivially_destructible< V, typename std::enable_if< is_complete< V >::value >::type >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_uninitialized_memcpyable< To, Args >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_uninitialized_memcpyable< To, From >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_uninitialized_memcpyable_impl< QualifiedFrom, QualifiedTo >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_uninitialized_memcpyable_iterator< InputIt, V >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::is_uninitialized_memcpyable_iterator< std::move_iterator< U >, V >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::must_use_alloc_construct< A, V, Args >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::must_use_alloc_destroy< A, V >
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::relocate_with_move< V >
 
class  PLMD::gch::small_vector< T, InlineCapacity, Allocator >
 
class  PLMD::gch::small_vector< T, InlineCapacity, Allocator >
 
class  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >
 
class  PLMD::gch::detail::small_vector_data< Pointer, SizeT, T, InlineCapacity >
 
class  PLMD::gch::detail::small_vector_data< Pointer, SizeT, T, 0 >
 
class  PLMD::gch::detail::small_vector_data_base< Pointer, SizeT >
 
class  PLMD::gch::small_vector_iterator< Pointer, DifferenceType >
 
class  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::stack_temporary
 
struct  PLMD::gch::detail::small_vector_base< Allocator, InlineCapacity >::strong_exception_policy
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::underlying_if_enum< T, Enable >
 
struct  PLMD::gch::detail::allocator_interface< Allocator >::underlying_if_enum< T, typename std::enable_if< std::is_enum< T >::value >::type >
 

Namespaces

 PLMD
 
 PLMD::gch
 
 PLMD::gch::detail
 
 PLMD::gch::detail::small_vector_adl
 

Macros

#define PLUMED_GCH_CATCH(...)   else if (false)
 
#define PLUMED_GCH_CONSTEVAL   constexpr
 
#define PLUMED_GCH_CPP14_CONSTEXPR
 
#define PLUMED_GCH_CPP17_CONSTEXPR
 
#define PLUMED_GCH_CPP20_CONSTEXPR
 
#define PLUMED_GCH_EMPTY_BASE
 
#define PLUMED_GCH_IMPLICIT_CONVERSION   /* implicit */
 
#define PLUMED_GCH_INLINE_VARIABLE
 
#define PLUMED_GCH_NODISCARD
 
#define PLUMED_GCH_NORETURN
 
#define PLUMED_GCH_SMALL_VECTOR_CONSTEXPR
 
#define PLUMED_GCH_SMALL_VECTOR_DEFAULT_SIZE   64
 
#define PLUMED_GCH_SMALL_VECTOR_HPP
 small_vector.hpp An implementation of small_vector (a vector with a small buffer optimization). More...
 
#define PLUMED_GCH_THROW
 
#define PLUMED_GCH_TRY   if (true)
 

Functions

template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::const_iterator PLMD::gch::begin (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::iterator PLMD::gch::begin (small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::const_iterator PLMD::gch::cbegin (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::const_iterator PLMD::gch::cend (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::const_reverse_iterator PLMD::gch::crbegin (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::const_reverse_iterator PLMD::gch::crend (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::const_pointer PLMD::gch::data (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::pointer PLMD::gch::data (small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr PLUMED_GCH_NODISCARD bool PLMD::gch::empty (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::const_iterator PLMD::gch::end (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::iterator PLMD::gch::end (small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator , typename U >
PLUMED_GCH_CPP20_CONSTEXPR small_vector< T, InlineCapacity, Allocator >::size_type PLMD::gch::erase (small_vector< T, InlineCapacity, Allocator > &v, const U &value)
 
template<typename T , unsigned InlineCapacity, typename Allocator , typename Pred >
PLUMED_GCH_CPP20_CONSTEXPR small_vector< T, InlineCapacity, Allocator >::size_type PLMD::gch::erase_if (small_vector< T, InlineCapacity, Allocator > &v, Pred pred)
 
template<typename T , unsigned InlineCapacity, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator!= (const small_vector< T, InlineCapacity, Allocator > &lhs, const small_vector< T, InlineCapacity, Allocator > &rhs)
 
template<typename T , unsigned InlineCapacityLHS, unsigned InlineCapacityRHS, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator!= (const small_vector< T, InlineCapacityLHS, Allocator > &lhs, const small_vector< T, InlineCapacityRHS, Allocator > &rhs)
 
template<typename Pointer , typename DifferenceType >
constexpr bool PLMD::gch::operator!= (const small_vector_iterator< Pointer, DifferenceType > &lhs, const small_vector_iterator< Pointer, DifferenceType > &rhs) noexcept
 
template<typename PointerLHS , typename DifferenceTypeLHS , typename PointerRHS , typename DifferenceTypeRHS >
constexpr bool PLMD::gch::operator!= (const small_vector_iterator< PointerLHS, DifferenceTypeLHS > &lhs, const small_vector_iterator< PointerRHS, DifferenceTypeRHS > &rhs) noexcept
 
template<typename Pointer , typename DifferenceType >
constexpr small_vector_iterator< Pointer, DifferenceType > PLMD::gch::operator+ (DifferenceType n, const small_vector_iterator< Pointer, DifferenceType > &it) noexcept
 
template<typename Pointer , typename DifferenceType >
constexpr DifferenceType PLMD::gch::operator- (const small_vector_iterator< Pointer, DifferenceType > &lhs, const small_vector_iterator< Pointer, DifferenceType > &rhs) noexcept
 
template<typename PointerLHS , typename PointerRHS , typename DifferenceType >
constexpr DifferenceType PLMD::gch::operator- (const small_vector_iterator< PointerLHS, DifferenceType > &lhs, const small_vector_iterator< PointerRHS, DifferenceType > &rhs) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator< (const small_vector< T, InlineCapacity, Allocator > &lhs, const small_vector< T, InlineCapacity, Allocator > &rhs)
 
template<typename T , unsigned InlineCapacityLHS, unsigned InlineCapacityRHS, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator< (const small_vector< T, InlineCapacityLHS, Allocator > &lhs, const small_vector< T, InlineCapacityRHS, Allocator > &rhs)
 
template<typename Pointer , typename DifferenceType >
constexpr bool PLMD::gch::operator< (const small_vector_iterator< Pointer, DifferenceType > &lhs, const small_vector_iterator< Pointer, DifferenceType > &rhs) noexcept
 
template<typename PointerLHS , typename DifferenceTypeLHS , typename PointerRHS , typename DifferenceTypeRHS >
constexpr bool PLMD::gch::operator< (const small_vector_iterator< PointerLHS, DifferenceTypeLHS > &lhs, const small_vector_iterator< PointerRHS, DifferenceTypeRHS > &rhs) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator<= (const small_vector< T, InlineCapacity, Allocator > &lhs, const small_vector< T, InlineCapacity, Allocator > &rhs)
 
template<typename T , unsigned InlineCapacityLHS, unsigned InlineCapacityRHS, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator<= (const small_vector< T, InlineCapacityLHS, Allocator > &lhs, const small_vector< T, InlineCapacityRHS, Allocator > &rhs)
 
template<typename Pointer , typename DifferenceType >
constexpr bool PLMD::gch::operator<= (const small_vector_iterator< Pointer, DifferenceType > &lhs, const small_vector_iterator< Pointer, DifferenceType > &rhs) noexcept
 
template<typename PointerLHS , typename DifferenceTypeLHS , typename PointerRHS , typename DifferenceTypeRHS >
constexpr bool PLMD::gch::operator<= (const small_vector_iterator< PointerLHS, DifferenceTypeLHS > &lhs, const small_vector_iterator< PointerRHS, DifferenceTypeRHS > &rhs) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator== (const small_vector< T, InlineCapacity, Allocator > &lhs, const small_vector< T, InlineCapacity, Allocator > &rhs)
 
template<typename T , unsigned InlineCapacityLHS, unsigned InlineCapacityRHS, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator== (const small_vector< T, InlineCapacityLHS, Allocator > &lhs, const small_vector< T, InlineCapacityRHS, Allocator > &rhs)
 
template<typename Pointer , typename DifferenceType >
constexpr bool PLMD::gch::operator== (const small_vector_iterator< Pointer, DifferenceType > &lhs, const small_vector_iterator< Pointer, DifferenceType > &rhs) noexcept
 
template<typename PointerLHS , typename DifferenceTypeLHS , typename PointerRHS , typename DifferenceTypeRHS >
constexpr bool PLMD::gch::operator== (const small_vector_iterator< PointerLHS, DifferenceTypeLHS > &lhs, const small_vector_iterator< PointerRHS, DifferenceTypeRHS > &rhs) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator> (const small_vector< T, InlineCapacity, Allocator > &lhs, const small_vector< T, InlineCapacity, Allocator > &rhs)
 
template<typename T , unsigned InlineCapacityLHS, unsigned InlineCapacityRHS, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator> (const small_vector< T, InlineCapacityLHS, Allocator > &lhs, const small_vector< T, InlineCapacityRHS, Allocator > &rhs)
 
template<typename Pointer , typename DifferenceType >
constexpr bool PLMD::gch::operator> (const small_vector_iterator< Pointer, DifferenceType > &lhs, const small_vector_iterator< Pointer, DifferenceType > &rhs) noexcept
 
template<typename PointerLHS , typename DifferenceTypeLHS , typename PointerRHS , typename DifferenceTypeRHS >
constexpr bool PLMD::gch::operator> (const small_vector_iterator< PointerLHS, DifferenceTypeLHS > &lhs, const small_vector_iterator< PointerRHS, DifferenceTypeRHS > &rhs) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator>= (const small_vector< T, InlineCapacity, Allocator > &lhs, const small_vector< T, InlineCapacity, Allocator > &rhs)
 
template<typename T , unsigned InlineCapacityLHS, unsigned InlineCapacityRHS, typename Allocator >
PLUMED_GCH_CPP20_CONSTEXPR bool PLMD::gch::operator>= (const small_vector< T, InlineCapacityLHS, Allocator > &lhs, const small_vector< T, InlineCapacityRHS, Allocator > &rhs)
 
template<typename Pointer , typename DifferenceType >
constexpr bool PLMD::gch::operator>= (const small_vector_iterator< Pointer, DifferenceType > &lhs, const small_vector_iterator< Pointer, DifferenceType > &rhs) noexcept
 
template<typename PointerLHS , typename DifferenceTypeLHS , typename PointerRHS , typename DifferenceTypeRHS >
constexpr bool PLMD::gch::operator>= (const small_vector_iterator< PointerLHS, DifferenceTypeLHS > &lhs, const small_vector_iterator< PointerRHS, DifferenceTypeRHS > &rhs) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::const_reverse_iterator PLMD::gch::rbegin (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::reverse_iterator PLMD::gch::rbegin (small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::const_reverse_iterator PLMD::gch::rend (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::reverse_iterator PLMD::gch::rend (small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr small_vector< T, InlineCapacity, Allocator >::size_type PLMD::gch::size (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator >
constexpr std::common_type< std::ptrdiff_t, typename std::make_signed< typename small_vector< T, InlineCapacity, Allocator >::size_type >::type >::type PLMD::gch::ssize (const small_vector< T, InlineCapacity, Allocator > &v) noexcept
 
template<typename T , unsigned InlineCapacity, typename Allocator , typename std::enable_if< std::is_move_constructible< T >::value &&std::is_move_assignable< T >::value >::type * = nullptr>
PLUMED_GCH_CPP20_CONSTEXPR void PLMD::gch::swap (small_vector< T, InlineCapacity, Allocator > &lhs, small_vector< T, InlineCapacity, Allocator > &rhs) noexcept(noexcept(lhs.swap(rhs)))
 

Macro Definition Documentation

◆ PLUMED_GCH_CATCH

#define PLUMED_GCH_CATCH (   ...)    else if (false)

◆ PLUMED_GCH_CONSTEVAL

#define PLUMED_GCH_CONSTEVAL   constexpr

◆ PLUMED_GCH_CPP14_CONSTEXPR

#define PLUMED_GCH_CPP14_CONSTEXPR

◆ PLUMED_GCH_CPP17_CONSTEXPR

#define PLUMED_GCH_CPP17_CONSTEXPR

◆ PLUMED_GCH_CPP20_CONSTEXPR

#define PLUMED_GCH_CPP20_CONSTEXPR

◆ PLUMED_GCH_EMPTY_BASE

#define PLUMED_GCH_EMPTY_BASE

◆ PLUMED_GCH_IMPLICIT_CONVERSION

#define PLUMED_GCH_IMPLICIT_CONVERSION   /* implicit */

◆ PLUMED_GCH_INLINE_VARIABLE

#define PLUMED_GCH_INLINE_VARIABLE

◆ PLUMED_GCH_NODISCARD

#define PLUMED_GCH_NODISCARD

◆ PLUMED_GCH_NORETURN

#define PLUMED_GCH_NORETURN

◆ PLUMED_GCH_SMALL_VECTOR_CONSTEXPR

#define PLUMED_GCH_SMALL_VECTOR_CONSTEXPR

◆ PLUMED_GCH_SMALL_VECTOR_DEFAULT_SIZE

#define PLUMED_GCH_SMALL_VECTOR_DEFAULT_SIZE   64

◆ PLUMED_GCH_SMALL_VECTOR_HPP

#define PLUMED_GCH_SMALL_VECTOR_HPP

small_vector.hpp An implementation of small_vector (a vector with a small buffer optimization).

I would probably have preferred to call this inline_vector, but I'll just go with the canonical name for now.

Copyright © 2020-2021 Gene Harvey

This software may be modified and distributed under the terms of the MIT license. See the LICENSE file for details.


◆ PLUMED_GCH_THROW

#define PLUMED_GCH_THROW

◆ PLUMED_GCH_TRY

#define PLUMED_GCH_TRY   if (true)