#pragma once namespace perlbind { namespace detail { template struct is_any : std::false_type {}; template struct is_any : std::is_same {}; template struct is_any : std::integral_constant::value || is_any::value> {}; template struct is_signed_integral : std::integral_constant::value && std::is_signed::value> {}; template struct is_signed_integral_or_enum : std::integral_constant::value || std::is_enum::value> {}; template struct count_of : std::integral_constant {}; template struct count_of : std::integral_constant::value ? 1 : 0> {}; template struct count_of : std::integral_constant::value + count_of::value> {}; template struct is_last : std::false_type {}; template struct is_last : std::is_same {}; template struct is_last : std::integral_constant::value> {}; } // namespace detail } // namespace perlbind