OGLplus  (0.59.0) a C++ wrapper for rendering APIs

enum_class.hpp File Reference
#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...
 

Detailed Description

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


Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).