14 template <
typename T>
explicit Void(T&&) {}
24 static_assert(meta::is_empty_tuple_v<std::tuple<>>,
"ouch");
25 static_assert(meta::is_empty_tuple_v<std::tuple<Void>>,
"ouch");
29 template<std::size_t... Is>
31 auto g = [](
int i){
return Void{}; };
32 return std::make_tuple(g(Is)...);
35 template<std::
size_t N>
46 struct hash<
ttg::Void> {
47 template <
typename ... Args> int64_t
operator()(Args&& ... args)
const {
return 0; }
A complete version of void.
auto make_void_tuple(std::index_sequence< Is... >)
top-level TTG namespace contains runtime-neutral functionality
bool operator==(const Void &, const Void &)
std::ostream & operator<<(std::ostream &os, const MultiIndex< Rank > &key)
bool operator!=(const Void &, const Void &)
int64_t operator()(Args &&... args) const