[A] Added support for c++ compilers without variadic templates
This commit is contained in:
parent
9838e6dc97
commit
18506673d5
@ -93,6 +93,7 @@ public:
|
|||||||
return write_ln(str.c_str());
|
return write_ln(str.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __cpp_variadic_templates
|
||||||
template <typename T, typename ...Ts>
|
template <typename T, typename ...Ts>
|
||||||
bool write(const T &arg, const Ts &...args)
|
bool write(const T &arg, const Ts &...args)
|
||||||
{
|
{
|
||||||
@ -106,6 +107,94 @@ public:
|
|||||||
return write_ln(arg);
|
return write_ln(arg);
|
||||||
return write(arg) && write_ln(args...);
|
return write(arg) && write_ln(args...);
|
||||||
}
|
}
|
||||||
|
#else /* __cpp_variadic_templates */
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1>
|
||||||
|
bool write(const T_0 &arg_0, const T_1 &arg_1)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write(arg_1);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2>
|
||||||
|
bool write(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write(arg_1, arg_2);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2, typename T_3>
|
||||||
|
bool write(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2, const T_3 &arg_3)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write(arg_1, arg_2, arg_3);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4>
|
||||||
|
bool write(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2, const T_3 &arg_3, const T_4 &arg_4)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write(arg_1, arg_2, arg_3, arg_4);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5>
|
||||||
|
bool write(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2, const T_3 &arg_3, const T_4 &arg_4, const T_5 &arg_5)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write(arg_1, arg_2, arg_3, arg_4, arg_5);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6>
|
||||||
|
bool write(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2, const T_3 &arg_3, const T_4 &arg_4, const T_5 &arg_5, const T_6 &arg_6)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write(arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7>
|
||||||
|
bool write(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2, const T_3 &arg_3, const T_4 &arg_4, const T_5 &arg_5, const T_6 &arg_6, const T_7 &arg_7)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write(arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1>
|
||||||
|
bool write_ln(const T_0 &arg_0, const T_1 &arg_1)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write_ln(arg_1);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2>
|
||||||
|
bool write_ln(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write_ln(arg_1, arg_2);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2, typename T_3>
|
||||||
|
bool write_ln(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2, const T_3 &arg_3)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write_ln(arg_1, arg_2, arg_3);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4>
|
||||||
|
bool write_ln(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2, const T_3 &arg_3, const T_4 &arg_4)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write_ln(arg_1, arg_2, arg_3, arg_4);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5>
|
||||||
|
bool write_ln(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2, const T_3 &arg_3, const T_4 &arg_4, const T_5 &arg_5)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write_ln(arg_1, arg_2, arg_3, arg_4, arg_5);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6>
|
||||||
|
bool write_ln(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2, const T_3 &arg_3, const T_4 &arg_4, const T_5 &arg_5, const T_6 &arg_6)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write_ln(arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T_0, typename T_1, typename T_2, typename T_3, typename T_4, typename T_5, typename T_6, typename T_7>
|
||||||
|
bool write_ln(const T_0 &arg_0, const T_1 &arg_1, const T_2 &arg_2, const T_3 &arg_3, const T_4 &arg_4, const T_5 &arg_5, const T_6 &arg_6, const T_7 &arg_7)
|
||||||
|
{
|
||||||
|
return write(arg_0) && write_ln(arg_1, arg_2, arg_3, arg_4, arg_5, arg_6, arg_7);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* __cpp_variadic_templates */
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
Reference in New Issue
Block a user