#include "assert.hpp"#include "identifier_t.hpp"#include "iterator.hpp"#include "mp_list.hpp"#include "nothing.hpp"#include "type_identity.hpp"#include "wrapping_container.hpp"#include <tuple>#include <type_traits>Go to the source code of this file.
Classes | |
| struct | eagine::enum_value< T, ClassList, Tag > |
| Class holding the value of a (typically C-API) symbolic constant. More... | |
| struct | eagine::enum_value< T, mp_list< Classes... >, Tag > |
| Class holding the value of a symbolic constant or enumerator. More... | |
| struct | eagine::opt_enum_value< T, ClassList, Tag > |
| Class holding optional value of a (typically C-API) symbolic constant. More... | |
| struct | eagine::opt_enum_value< T, mp_list< Classes... >, Tag > |
| Class holding optional value of a symbolic constant or enumerator. More... | |
| struct | eagine::no_enum_value< T, Tag > |
| Class representing undefined value of a (typically C-API) symbolic constant. More... | |
| struct | eagine::any_enum_value< LibId > |
| Type erasure for instantiations of enum_value from a specified library. More... | |
| struct | eagine::enum_class< Self, T, LibId, Id > |
| Enum class for constants or enumerators (typically from a C-API). More... | |
| struct | eagine::is_enum_class< T > |
| Implementation of is_enum_class trait. More... | |
| struct | eagine::is_enum_class_value< Class, Value > |
| Implementation of is_enum_class_value trait. More... | |
| struct | eagine::any_enum_class< LibId > |
| Type erasure for instantiations of enum_class from a specified library. More... | |
| struct | eagine::any_enum_value< LibId > |
| Type erasure for instantiations of enum_value from a specified library. More... | |
| class | eagine::enum_class_container< EnumClass, Container > |
| Template for containers of enum_class. More... | |
Namespaces | |
| eagine | |
| Common code is placed in this namespace. | |
Typedefs | |
| template<typename EnumClass > | |
| using | eagine::enum_class_span = enum_class_container< EnumClass, span< typename EnumClass::value_type > > |
| Alias for non-const span of multiple enum_class values. More... | |
| template<typename EnumClass > | |
| using | eagine::enum_class_view = enum_class_container< EnumClass, span< const typename EnumClass::value_type > > |
| Alias for const span of multiple enum_class values. More... | |
| template<typename EnumClass , std::size_t N> | |
| using | eagine::enum_class_array = enum_class_container< EnumClass, std::array< typename EnumClass::value_type, N > > |
| Alias for array of multiple enum_class values. More... | |
Functions | |
| template<identifier_t LibId> | |
| static constexpr auto | eagine::same_enum_class (any_enum_class< LibId > a, any_enum_class< LibId > b) noexcept |
| Tests if two instances of any_enum_class belong to the same enum class. More... | |
Variables | |
| template<typename T > | |
| constexpr bool | eagine::is_enum_class_v |
| Trait indicating if type T is an enum_class. More... | |
| template<typename C , typename V > | |
| constexpr auto | eagine::is_enum_class_value_v |
| Trait indicating if type T is an enum_value, opt_enum_value or no_enum_value. More... | |
Copyright Matus Chochlik. Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt