CANdevStudio
Development tool for CAN bus simulation
Loading...
Searching...
No Matches
typestring.hh File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  irqus::typestring< C >
 

Namespaces

namespace  irqus
 

Macros

#define TYPESTRING1(n, x)   irqus::tygrab<0x##n##0>(x)
 
#define TYPESTRING2(n, x)   irqus::tygrab<0x##n##0>(x), irqus::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 typestring_is(x)    decltype(irqus::typeek(irqus::typestring<TYPESTRING64(,x)>()))
 

Typedefs

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

Functions

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

Macro Definition Documentation

◆ TYPESTRING1

#define TYPESTRING1 (   n,
 
)    irqus::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 TYPESTRING16(n, x)
Definition typestring.hh:171
#define TYPESTRING256(n, x)
Definition typestring.hh:197
#define TYPESTRING128(n, x)
Definition typestring.hh:191

◆ 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)

◆ TYPESTRING16

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

◆ TYPESTRING2

#define TYPESTRING2 (   n,
 
)    irqus::tygrab<0x##n##0>(x), irqus::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)

◆ TYPESTRING32

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

◆ TYPESTRING4

#define TYPESTRING4 (   n,
 
)
Value:
irqus::tygrab<0x##n##0>(x), irqus::tygrab<0x##n##1>(x) \
, irqus::tygrab<0x##n##2>(x), irqus::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)

◆ TYPESTRING8

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

◆ typestring_is

#define typestring_is (   x)     decltype(irqus::typeek(irqus::typestring<TYPESTRING64(,x)>()))