libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
enum_as_char_array.hpp File Reference
#include "config.h"
#include <boost/mpl/assert.hpp>
#include <array>
#include <cstdint>
#include <type_traits>
Include dependency graph for enum_as_char_array.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_::select_underlying_type< c1, c2, c3, c4, c5, c6, c7, c8 >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_::select_underlying_type< c1, c2, c3, c4, c5, c6, c7, '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_::select_underlying_type< c1, c2, c3, c4, c5, c6, '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_::select_underlying_type< c1, c2, c3, c4, c5, '\0', '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_::select_underlying_type< c1, c2, c3, c4, '\0', '\0', '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_::select_underlying_type< c1, c2, c3, '\0', '\0', '\0', '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_::select_underlying_type< c1, c2, '\0', '\0', '\0', '\0', '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_::select_underlying_type< c1, '\0', '\0', '\0', '\0', '\0', '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_::count_digits< EnumT, t, i, is_digit >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_::count_digits< EnumT, t, i, false >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_tag< c1, c2, c3, c4, c5, c6, c7, c8 >
 Convert the chars into a suitable enum-tag. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_tag< c1, c2, c3, c4, c5, c6, c7, '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_tag< c1, c2, c3, c4, c5, c6, '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_tag< c1, c2, c3, c4, c5, '\0', '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_tag< c1, c2, c3, c4, '\0', '\0', '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_tag< c1, c2, c3, '\0', '\0', '\0', '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_tag< c1, c2, '\0', '\0', '\0', '\0', '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_tag< c1, '\0', '\0', '\0', '\0', '\0', '\0', '\0'>
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_array< EnumT, t, 8u >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_array< EnumT, t, 7u >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_array< EnumT, t, 6u >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_array< EnumT, t, 5u >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_array< EnumT, t, 4u >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_array< EnumT, t, 3u >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_array< EnumT, t, 2u >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::to_array< EnumT, t, 1u >
 

Namespaces

namespace  jmmcg
 Link with -lrt to include these functions.
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags
 Construct enum-tag values from a sequence of chars, and extract from the tag-value the string that was encoded.
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::private_
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests
 

Enumerations

enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::enum_tags_as_strs1 : uint16_t { jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e1 =to_tag<'0', '0'>::value , jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e2 =to_tag<'1', '2'>::value , jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e3 =to_tag<'3'>::value }
 
enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::enum_tags_as_strs2 : uint64_t {
  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e8 =to_tag<'2', '.', '7', '1', '8', '2', '8', '1'>::value , jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e7 =to_tag<'1', '2', '3', '4', '5', '6', '7'>::value , jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e6 =to_tag<'1', '2', '3', '4', '5', '6'>::value , jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e5 =to_tag<'1', '2', '3', '4', '5'>::value ,
  jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e4 =to_tag<'1', '2', '3', '4'>::value , jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e3 =to_tag<'3', '1', '4'>::value , jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e2 =to_tag<'3', '1'>::value , jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::e1 =to_tag<'3'>::value
}
 

Functions

constexpr EnumT ::type jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::convert (const char(&s)[N]) noexcept(true)
 
template<class EnumT >
constexpr EnumT jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::convert (std::array< char, sizeof(EnumT)> const &s) noexcept(true)
 A function to convert, even faster, a correctly sized array of chars into one of these magic enum-tags-as-a-string. More...
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs1, enum_tags_as_strs1::e1 >::size),==, 2)
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs1, enum_tags_as_strs1::e1 >::value[0]),==, '0')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs1, enum_tags_as_strs1::e1 >::value[1]),==, '0')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs1, enum_tags_as_strs1::e2 >::size),==, 2)
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs1, enum_tags_as_strs1::e2 >::value[0]),==, '1')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs1, enum_tags_as_strs1::e2 >::value[1]),==, '2')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs1, enum_tags_as_strs1::e3 >::size),==, 1)
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs1, enum_tags_as_strs1::e3 >::value[0]),==, '3')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e8 >::size),==, 8)
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e8 >::value[0]),==, '2')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e8 >::value[1]),==, '.')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e8 >::value[2]),==, '7')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e8 >::value[3]),==, '1')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e8 >::value[4]),==, '8')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e8 >::value[5]),==, '2')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e8 >::value[6]),==, '8')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e8 >::value[7]),==, '1')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e7 >::size),==, 7)
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e7 >::value[0]),==, '1')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e7 >::value[1]),==, '2')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e7 >::value[2]),==, '3')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e7 >::value[3]),==, '4')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e7 >::value[4]),==, '5')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e7 >::value[5]),==, '6')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e7 >::value[6]),==, '7')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e6 >::size),==, 6)
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e6 >::value[0]),==, '1')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e6 >::value[1]),==, '2')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e6 >::value[2]),==, '3')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e6 >::value[3]),==, '4')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e6 >::value[4]),==, '5')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e6 >::value[5]),==, '6')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e5 >::size),==, 5)
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e5 >::value[0]),==, '1')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e5 >::value[1]),==, '2')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e5 >::value[2]),==, '3')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e5 >::value[3]),==, '4')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e5 >::value[4]),==, '5')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e4 >::size),==, 4)
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e4 >::value[0]),==, '1')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e4 >::value[1]),==, '2')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e4 >::value[2]),==, '3')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e4 >::value[3]),==, '4')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e3 >::size),==, 3)
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e3 >::value[0]),==, '3')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e3 >::value[1]),==, '1')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e3 >::value[2]),==, '4')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e2 >::size),==, 2)
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e2 >::value[0]),==, '3')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e2 >::value[1]),==, '1')
 
 jmmcg::LIBJMMCG_VER_NAMESPACE::enum_tags::mpl::tests::BOOST_MPL_ASSERT_RELATION ((to_array< enum_tags_as_strs2, enum_tags_as_strs2::e1 >::size),==, 1)