cppyabm  1.0.17
An agent-based library to integrate C++ and Python
Classes | Macros | Functions
descr.h File Reference
#include "common.h"

Go to the source code of this file.

Classes

struct  descr< N, Ts >
 
struct  int_to_str< Rem, Digits >
 
struct  int_to_str< 0, Digits... >
 

Macros

#define PYBIND11_DESCR_CONSTEXPR   static constexpr
 

Functions

template<size_t N1, size_t N2, typename... Ts1, typename... Ts2, size_t... Is1, size_t... Is2>
constexpr descr< N1+N2, Ts1..., Ts2... > plus_impl (const descr< N1, Ts1... > &a, const descr< N2, Ts2... > &b, index_sequence< Is1... >, index_sequence< Is2... >)
 
template<size_t N1, size_t N2, typename... Ts1, typename... Ts2>
constexpr descr< N1+N2, Ts1..., Ts2... > operator+ (const descr< N1, Ts1... > &a, const descr< N2, Ts2... > &b)
 
template<size_t N>
constexpr descr< N - 1 > _ (char const(&text)[N])
 
constexpr descr< 0 > _ (char const(&)[1])
 
template<bool B, size_t N1, size_t N2>
constexpr enable_if_t< B, descr< N1 - 1 > > _ (char const(&text1)[N1], char const(&)[N2])
 
template<bool B, size_t N1, size_t N2>
constexpr enable_if_t<!B, descr< N2 - 1 > > _ (char const(&)[N1], char const(&text2)[N2])
 
template<bool B, typename T1 , typename T2 >
constexpr enable_if_t< B, T1 > _ (const T1 &d, const T2 &)
 
template<bool B, typename T1 , typename T2 >
constexpr enable_if_t<!B, T2 > _ (const T1 &, const T2 &d)
 
template<size_t Size>
constexpr auto _ () -> decltype(int_to_str< Size/10, Size % 10 >::digits)
 
template<typename Type >
constexpr descr< 1, Type > _ ()
 
constexpr descr< 0 > concat ()
 
template<size_t N, typename... Ts>
constexpr descr< N, Ts... > concat (const descr< N, Ts... > &descr)
 
template<size_t N, typename... Ts, typename... Args>
constexpr auto concat (const descr< N, Ts... > &d, const Args &...args) -> decltype(std::declval< descr< N+2, Ts... >>()+concat(args...))
 
template<size_t N, typename... Ts>
constexpr descr< N+2, Ts... > type_descr (const descr< N, Ts... > &descr)
 

Macro Definition Documentation

◆ PYBIND11_DESCR_CONSTEXPR

#define PYBIND11_DESCR_CONSTEXPR   static constexpr

Definition at line 19 of file descr.h.

Function Documentation

◆ _() [1/8]

template<typename Type >
constexpr descr<1, Type> _ ( )
constexpr

Definition at line 81 of file descr.h.

◆ _() [2/8]

template<size_t Size>
constexpr auto _ ( ) -> decltype(int_to_str<Size / 10, Size % 10>::digits)
constexpr

Definition at line 77 of file descr.h.

◆ _() [3/8]

constexpr descr<0> _ ( char const   (&)[1])
constexpr

Definition at line 55 of file descr.h.

◆ _() [4/8]

template<bool B, size_t N1, size_t N2>
constexpr enable_if_t<!B, descr<N2 - 1> > _ ( char const   (&)[N1],
char const(&)  text2[N2] 
)
constexpr

Definition at line 68 of file descr.h.

◆ _() [5/8]

template<size_t N>
constexpr descr<N - 1> _ ( char const(&)  text[N])
constexpr

Definition at line 54 of file descr.h.

◆ _() [6/8]

template<bool B, size_t N1, size_t N2>
constexpr enable_if_t<B, descr<N1 - 1> > _ ( char const(&)  text1[N1],
char const   (&)[N2] 
)
constexpr

Definition at line 64 of file descr.h.

◆ _() [7/8]

template<bool B, typename T1 , typename T2 >
constexpr enable_if_t<!B, T2> _ ( const T1 &  ,
const T2 &  d 
)
constexpr

Definition at line 75 of file descr.h.

◆ _() [8/8]

template<bool B, typename T1 , typename T2 >
constexpr enable_if_t<B, T1> _ ( const T1 &  d,
const T2 &   
)
constexpr

Definition at line 73 of file descr.h.

◆ concat() [1/3]

constexpr descr<0> concat ( )
constexpr

Definition at line 83 of file descr.h.

◆ concat() [2/3]

template<size_t N, typename... Ts, typename... Args>
constexpr auto concat ( const descr< N, Ts... > &  d,
const Args &...  args 
) -> decltype(std::declval<descr<N + 2, Ts...>>() + concat(args...))
constexpr

Definition at line 89 of file descr.h.

◆ concat() [3/3]

template<size_t N, typename... Ts>
constexpr descr<N, Ts...> concat ( const descr< N, Ts... > &  descr)
constexpr

Definition at line 86 of file descr.h.

◆ operator+()

template<size_t N1, size_t N2, typename... Ts1, typename... Ts2>
constexpr descr<N1 + N2, Ts1..., Ts2...> operator+ ( const descr< N1, Ts1... > &  a,
const descr< N2, Ts2... > &  b 
)
constexpr

Definition at line 49 of file descr.h.

◆ plus_impl()

template<size_t N1, size_t N2, typename... Ts1, typename... Ts2, size_t... Is1, size_t... Is2>
constexpr descr<N1 + N2, Ts1..., Ts2...> plus_impl ( const descr< N1, Ts1... > &  a,
const descr< N2, Ts2... > &  b,
index_sequence< Is1... >  ,
index_sequence< Is2... >   
)
constexpr

Definition at line 43 of file descr.h.

◆ type_descr()

template<size_t N, typename... Ts>
constexpr descr<N + 2, Ts...> type_descr ( const descr< N, Ts... > &  descr)
constexpr

Definition at line 95 of file descr.h.