LocalGuidance
A library that generates velocity references to follow a path.
CompileTimeString.hpp File Reference
This graph shows which files directly or indirectly include this file:

Classes

struct  std_utils::typestring< C >
 

Namespaces

 std_utils
 

Macros

#define TYPESTRING1(n, x)   std_utils::tygrab<0x##n##0>(x)
 
#define TYPESTRING2(n, x)   std_utils::tygrab<0x##n##0>(x), std_utils::tygrab<0x##n##1>(x)
 
#define TYPESTRING4(n, x)
 
#define TYPESTRING8(n, x)
 
#define TYPESTRING16(n, x)
 
#define TYPESTRING32(n, x)   TYPESTRING16(n##0,x),TYPESTRING16(n##1,x)
 
#define TYPESTRING64(n, x)
 
#define TYPESTRING128(n, x)
 
#define TYPESTRING256(n, x)
 
#define TYPESTRING512(n, x)   TYPESTRING256(n##0,x), TYPESTRING256(n##1,x)
 
#define TYPESTRING1024(n, x)
 
#define ct_string(x)   decltype(std_utils::typeek(std_utils::typestring<TYPESTRING64(,x)>()))
 

Typedefs

template<typename... T>
using std_utils::tycat = decltype(tycat_(T()...))
 

Functions

constexpr bool std_utils::strings_equal (char const *a, char const *b)
 
template<int N, int M>
constexpr char std_utils::tygrab (char const(&c)[M]) noexcept
 
template<char... X>
auto std_utils::typoke (typestring< X... >) -> typestring< X... >
 
template<char... X, char... Y>
auto std_utils::typoke (typestring< X... >, typestring<'\0'>, typestring< Y >...) -> typestring< X... >
 
template<char A, char... X, char... Y>
auto std_utils::typoke (typestring< X... >, typestring< A >, typestring< Y >...) -> decltype(typoke(typestring< X..., A >(), typestring< Y >()...))
 
template<char... C>
auto std_utils::typeek (typestring< C... >) -> decltype(typoke(typestring< C >()...))
 
template<char... A, char... B, typename... X>
auto std_utils::tycat_ (typestring< A... >, typestring< B... >, X... x) -> decltype(tycat_(typestring< A..., B... >(), x...))
 
template<char... X>
auto std_utils::tycat_ (typestring< X... >) -> typestring< X... >
 

Detailed Description

Author
Gabriel Hottiger
Date
Apr, 2018

Macro Definition Documentation

◆ ct_string

#define ct_string (   x)    decltype(std_utils::typeek(std_utils::typestring<TYPESTRING64(,x)>()))

◆ TYPESTRING1

#define TYPESTRING1 (   n,
 
)    std_utils::tygrab<0x##n##0>(x)

◆ TYPESTRING1024

#define TYPESTRING1024 (   n,
 
)
Value:
TYPESTRING256(n##0,x), TYPESTRING256(n##1,x), TYPESTRING256(n##2,x) \
, TYPESTRING128(n##3,x), TYPESTRING16(n##38,x), TYPESTRING16(n##39,x) \
, TYPESTRING16(n##3A,x), TYPESTRING16(n##3B,x), TYPESTRING16(n##3C,x) \
, TYPESTRING16(n##3D,x), TYPESTRING16(n##3E,x), TYPESTRING16(n##3F,x)
#define TYPESTRING256(n, x)
Definition: CompileTimeString.hpp:206
#define TYPESTRING128(n, x)
Definition: CompileTimeString.hpp:200
#define TYPESTRING16(n, x)
Definition: CompileTimeString.hpp:180

◆ TYPESTRING128

#define TYPESTRING128 (   n,
 
)
Value:
TYPESTRING16(n##0,x), TYPESTRING16(n##1,x), TYPESTRING16(n##2,x) \
, TYPESTRING16(n##3,x), TYPESTRING16(n##4,x), TYPESTRING16(n##5,x) \
, TYPESTRING16(n##6,x), TYPESTRING16(n##7,x)
#define TYPESTRING16(n, x)
Definition: CompileTimeString.hpp:180

◆ TYPESTRING16

#define TYPESTRING16 (   n,
 
)
Value:
std_utils::tygrab<0x##n##0>(x), std_utils::tygrab<0x##n##1>(x) \
, std_utils::tygrab<0x##n##2>(x), std_utils::tygrab<0x##n##3>(x) \
, std_utils::tygrab<0x##n##4>(x), std_utils::tygrab<0x##n##5>(x) \
, std_utils::tygrab<0x##n##6>(x), std_utils::tygrab<0x##n##7>(x) \
, std_utils::tygrab<0x##n##8>(x), std_utils::tygrab<0x##n##9>(x) \
, std_utils::tygrab<0x##n##A>(x), std_utils::tygrab<0x##n##B>(x) \
, std_utils::tygrab<0x##n##C>(x), std_utils::tygrab<0x##n##D>(x) \
, std_utils::tygrab<0x##n##E>(x), std_utils::tygrab<0x##n##F>(x)

◆ TYPESTRING2

#define TYPESTRING2 (   n,
 
)    std_utils::tygrab<0x##n##0>(x), std_utils::tygrab<0x##n##1>(x)

◆ TYPESTRING256

#define TYPESTRING256 (   n,
 
)
Value:
TYPESTRING16(n##0,x), TYPESTRING16(n##1,x), TYPESTRING16(n##2,x) \
, TYPESTRING16(n##3,x), TYPESTRING16(n##4,x), TYPESTRING16(n##5,x) \
, TYPESTRING16(n##6,x), TYPESTRING16(n##7,x), TYPESTRING16(n##8,x) \
, TYPESTRING16(n##9,x), TYPESTRING16(n##A,x), TYPESTRING16(n##B,x) \
, TYPESTRING16(n##C,x), TYPESTRING16(n##D,x), TYPESTRING16(n##E,x) \
, TYPESTRING16(n##F,x)
#define TYPESTRING16(n, x)
Definition: CompileTimeString.hpp:180

◆ TYPESTRING32

#define TYPESTRING32 (   n,
 
)    TYPESTRING16(n##0,x),TYPESTRING16(n##1,x)

◆ TYPESTRING4

#define TYPESTRING4 (   n,
 
)
Value:
std_utils::tygrab<0x##n##0>(x), std_utils::tygrab<0x##n##1>(x) \
, std_utils::tygrab<0x##n##2>(x), std_utils::tygrab<0x##n##3>(x)

◆ TYPESTRING512

#define TYPESTRING512 (   n,
 
)    TYPESTRING256(n##0,x), TYPESTRING256(n##1,x)

◆ TYPESTRING64

#define TYPESTRING64 (   n,
 
)
Value:
TYPESTRING16(n##0,x), TYPESTRING16(n##1,x), TYPESTRING16(n##2,x) \
, TYPESTRING16(n##3,x)
#define TYPESTRING16(n, x)
Definition: CompileTimeString.hpp:180

◆ TYPESTRING8

#define TYPESTRING8 (   n,
 
)
Value:
std_utils::tygrab<0x##n##0>(x), std_utils::tygrab<0x##n##1>(x) \
, std_utils::tygrab<0x##n##2>(x), std_utils::tygrab<0x##n##3>(x) \
, std_utils::tygrab<0x##n##4>(x), std_utils::tygrab<0x##n##5>(x) \
, std_utils::tygrab<0x##n##6>(x), std_utils::tygrab<0x##n##7>(x)