26 template <
class Tuple,
size_t Pos>
30 os << std::get< std::tuple_size<Tuple>::value-Pos >(t) <<
", ";
35 template <
class Tuple>
39 return os << std::get<std::tuple_size<Tuple>::value-1>(t);
43 template <
class... Args>
45 PrintTuple(
const std::tuple<Args...>& t,
const std::string& str=
"", std::ostream& os=std::cout)
47 os << (str==
""?
"tuple":str) <<
" = " << t << std::endl;
51 template<
typename... Args>
55 return sizeof...(args);
76 template<
typename... Args>
80 auto list = std::make_tuple(args...);
81 os << list << std::endl << std::flush;
85 template<
typename... Args>
99 template <
class... Args>
103 os << std::boolalpha;
104 int nn =
sizeof...(Args);
110 os << std::noboolalpha << std::flush;
std::ostream & operator<<(std::ostream &os, const NDArray< T, Dim > &arr)
void PrintOS(std::ostream &os, Args...args)
std::ostream & PrintTuple(std::ostream &os, const Tuple &t, Int_< Pos >)
auto GetNumberOfArgs(Args...args) -> decltype(sizeof...(args))