#ifndef SPROUT_BREED_DETAIL_TEMPLATE_ARITY_HPP #define SPROUT_BREED_DETAIL_TEMPLATE_ARITY_HPP #include #include namespace sprout { namespace breed { namespace detail { template struct template_arity_impl; template class F, typename... Args> struct template_arity_impl > : public std::integral_constant {}; template struct template_arity : public sprout::breed::detail::template_arity_impl {}; } // namespace detail } // namespace breed } // namespace sprout #endif // #ifndef SPROUT_BREED_DETAIL_TEMPLATE_ARITY_HPP