#pragma once #include #include namespace util { namespace tuples { template inline typename std::enable_if::type for_each(const std::tuple&, FuncT) { } template inline typename std::enable_if < I::type for_each(const std::tuple& t, FuncT f) { f(std::get(t)); for_each(t, f); } template inline typename std::enable_if::type for_each(std::tuple&&, FuncT) { } template inline typename std::enable_if < I::type for_each(std::tuple&& t, FuncT f) { f(std::move(std::get(t))); for_each(std::move(t), f); } } // namespace tuples } // namespace util