mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2025-08-03 12:49:50 +00:00
add _va, _Ntail variadic placeholders
This commit is contained in:
parent
e052c3d3a9
commit
8fa8d80ca2
2 changed files with 321 additions and 61 deletions
|
@ -9,9 +9,13 @@ namespace sprout {
|
|||
// placeholder
|
||||
//
|
||||
template<int N>
|
||||
struct placeholder {};
|
||||
struct placeholder
|
||||
// : public std::integral_constant<int, N>
|
||||
{};
|
||||
template<>
|
||||
struct placeholder<-1> {
|
||||
struct placeholder<-1>
|
||||
// : public std::integral_constant<int, -1>
|
||||
{
|
||||
public:
|
||||
template<int N2>
|
||||
SPROUT_CONSTEXPR operator sprout::placeholder<N2>() const {
|
||||
|
@ -53,6 +57,38 @@ namespace sprout {
|
|||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<30> _30 = {};
|
||||
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-1> _ = {};
|
||||
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256> _va = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 1> _1tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 2> _2tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 3> _3tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 4> _4tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 5> _5tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 6> _6tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 7> _7tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 8> _8tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 9> _9tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 10> _10tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 11> _11tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 12> _12tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 13> _13tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 14> _14tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 15> _15tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 16> _16tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 17> _17tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 18> _18tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 19> _19tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 20> _20tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 21> _21tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 22> _22tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 23> _23tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 24> _24tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 25> _25tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 26> _26tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 27> _27tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 28> _28tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 29> _29tail = {};
|
||||
SPROUT_STATIC_CONSTEXPR sprout::placeholder<-256 - 30> _30tail = {};
|
||||
} // anonymous-namespace
|
||||
} // namespace placeholders
|
||||
using sprout::placeholders::_1;
|
||||
|
@ -76,7 +112,7 @@ namespace sprout {
|
|||
using sprout::placeholders::_19;
|
||||
using sprout::placeholders::_20;
|
||||
using sprout::placeholders::_21;
|
||||
using sprout::placeholders::_2;
|
||||
using sprout::placeholders::_22;
|
||||
using sprout::placeholders::_23;
|
||||
using sprout::placeholders::_24;
|
||||
using sprout::placeholders::_25;
|
||||
|
@ -88,6 +124,38 @@ namespace sprout {
|
|||
|
||||
using sprout::placeholders::_;
|
||||
|
||||
using sprout::placeholders::_va;
|
||||
using sprout::placeholders::_1tail;
|
||||
using sprout::placeholders::_2tail;
|
||||
using sprout::placeholders::_3tail;
|
||||
using sprout::placeholders::_4tail;
|
||||
using sprout::placeholders::_5tail;
|
||||
using sprout::placeholders::_6tail;
|
||||
using sprout::placeholders::_7tail;
|
||||
using sprout::placeholders::_8tail;
|
||||
using sprout::placeholders::_9tail;
|
||||
using sprout::placeholders::_10tail;
|
||||
using sprout::placeholders::_11tail;
|
||||
using sprout::placeholders::_12tail;
|
||||
using sprout::placeholders::_13tail;
|
||||
using sprout::placeholders::_14tail;
|
||||
using sprout::placeholders::_15tail;
|
||||
using sprout::placeholders::_16tail;
|
||||
using sprout::placeholders::_17tail;
|
||||
using sprout::placeholders::_18tail;
|
||||
using sprout::placeholders::_19tail;
|
||||
using sprout::placeholders::_20tail;
|
||||
using sprout::placeholders::_21tail;
|
||||
using sprout::placeholders::_22tail;
|
||||
using sprout::placeholders::_23tail;
|
||||
using sprout::placeholders::_24tail;
|
||||
using sprout::placeholders::_25tail;
|
||||
using sprout::placeholders::_26tail;
|
||||
using sprout::placeholders::_27tail;
|
||||
using sprout::placeholders::_28tail;
|
||||
using sprout::placeholders::_29tail;
|
||||
using sprout::placeholders::_30tail;
|
||||
|
||||
//
|
||||
// is_placeholder
|
||||
//
|
||||
|
@ -95,6 +163,10 @@ namespace sprout {
|
|||
struct is_placeholder
|
||||
: public std::integral_constant<int, 0>
|
||||
{};
|
||||
template<int N>
|
||||
struct is_placeholder<sprout::placeholder<N> >
|
||||
: public std::integral_constant<int, N>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_placeholder<T const>
|
||||
: public sprout::is_placeholder<T>
|
||||
|
@ -107,10 +179,6 @@ namespace sprout {
|
|||
struct is_placeholder<T const volatile>
|
||||
: public sprout::is_placeholder<T>
|
||||
{};
|
||||
template<int N>
|
||||
struct is_placeholder<sprout::placeholder<N> >
|
||||
: public std::integral_constant<int, N>
|
||||
{};
|
||||
} // namespace sprout
|
||||
|
||||
#endif // #ifndef SPROUT_FUNCTIONAL_BIND_PLACEHOLDER_HPP
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue