cppyabm
1.0.17
An agent-based library to integrate C++ and Python
|
|
Go to the documentation of this file.
17 #if !defined(_MSC_VER)
18 # define PYBIND11_DESCR_CONSTEXPR static constexpr
20 # define PYBIND11_DESCR_CONSTEXPR const
24 template <
size_t N,
typename... Ts>
31 template <
size_t... Is>
34 template <
typename... Chars>
35 constexpr
descr(
char c, Chars... cs) :
text{c,
static_cast<char>(cs)...,
'\0'} { }
37 static constexpr std::array<
const std::type_info *,
sizeof...(Ts) + 1>
types() {
38 return {{&
typeid(Ts)...,
nullptr}};
42 template <
size_t N1,
size_t N2,
typename... Ts1,
typename... Ts2,
size_t... Is1,
size_t... Is2>
45 return {a.
text[Is1]..., b.
text[Is2]...};
48 template <
size_t N1,
size_t N2,
typename... Ts1,
typename... Ts2>
54 constexpr
descr<N - 1>
_(
char const(&text)[N]) {
return descr<N - 1>(text); }
55 constexpr
descr<0> _(
char const(&)[1]) {
return {}; }
58 template <
size_t...Digits>
struct int_to_str<0, Digits...> {
59 static constexpr
auto digits =
descr<
sizeof...(Digits)>((
'0' + Digits)...);
63 template <
bool B,
size_t N1,
size_t N2>
67 template <
bool B,
size_t N1,
size_t N2>
72 template <
bool B,
typename T1,
typename T2>
74 template <
bool B,
typename T1,
typename T2>
78 return int_to_str<Size / 10, Size % 10>::digits;
85 template <
size_t N,
typename... Ts>
88 template <
size_t N,
typename... Ts,
typename... Args>
94 template <
size_t N,
typename... Ts>
typename std::enable_if< B, T >::type enable_if_t
from cpp_future import (convenient aliases from C++14/17)
#define PYBIND11_NAMESPACE_BEGIN(name)
#define PYBIND11_NAMESPACE_END(name)
#define PYBIND11_NAMESPACE
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 descr< N - 1 > _(char const(&text)[N])
static constexpr std::array< const std::type_info *, sizeof...(Ts)+1 > types()
constexpr descr< 0 > concat()
constexpr descr(char const (&s)[N+1], index_sequence< Is... >)
constexpr descr< N+2, Ts... > type_descr(const descr< N, Ts... > &descr)
constexpr descr(char const (&s)[N+1])
typename make_index_sequence_impl< N >::type make_index_sequence
constexpr descr< N1+N2, Ts1..., Ts2... > operator+(const descr< N1, Ts1... > &a, const descr< N2, Ts2... > &b)
constexpr descr(char c, Chars... cs)