namespace mrpt::typemeta

Overview

namespace typemeta {

// namespaces

namespace mrpt::typemeta::detail;
namespace mrpt::typemeta::internal;

// structs

template <typename ENUMTYPE>
struct TEnumType;

template <typename ENUMTYPE>
struct TEnumTypeFiller;

template <typename T1, typename T2>
struct TTypeName<std::pair<T1, T2>>;

template <typename T>
struct TTypeName;

template <typename T>
struct TTypeName<std::shared_ptr<T>>;

template <size_t N>
struct TTypeName<mrpt::math::CVectorFixedDouble<N>>;

template <size_t N>
struct TTypeName<mrpt::math::CVectorFixedFloat<N>>;

template <typename T>
struct TTypeName<std::chrono::time_point<T>>;

template <typename T>
struct TTypeName<mrpt::math::CMatrixDynamic<T>>;

template <typename T, size_t N>
struct TTypeName<mrpt::math::CVectorFixed<T, N>>;

template <typename T, std::size_t N, std::size_t M>
struct TTypeName<mrpt::math::CMatrixFixed<T, N, M>>;

template <typename T>
struct TTypeName<mrpt::math::CVectorDynamic<T>>;

template <unsigned num>
struct num_to_string;

// classes

template <int N>
class array_string;

template <int N>
class string_literal;

// global functions

template <int N_PLUS_1>
constexpr auto literal(const char(&) lit [N_PLUS_1]);

template <int N1, int N2>
constexpr auto operator + (
    const string_literal<N1>& s1,
    const string_literal<N2>& s2
    );

template <int N1, int N2>
constexpr auto operator + (
    const array_string<N1>& s1,
    const string_literal<N2>& s2
    );

template <int N1, int N2>
constexpr auto operator + (
    const array_string<N1>& s1,
    const array_string<N2>& s2
    );

template <typename EnumType>
std::string enum2str(const EnumType& value);

template <typename EnumType>
EnumType str2enum(const std::string& enumValueName);

} // namespace typemeta

Global Functions

template <typename EnumType>
std::string enum2str(const EnumType& value)

Syntactic sugar for easy conversion of enum values to symbolic name strings.

(New in MRPT 2.3.3)

template <typename EnumType>
EnumType str2enum(const std::string& enumValueName)

Syntactic sugar for easy conversion of strings into enum values.

(New in MRPT 2.4.2)