static_assert(has_arg_annotations||!has_kw_only_args,"py::kw_only requires the use of argument annotations");
static_assert(has_arg_annotations||!has_pos_only_args,"py::pos_only requires the use of argument annotations (for docstrings and aligning the annotations to the argument)");
static_assert(!(has_args&&has_kw_only_args),"py::kw_only cannot be combined with a py::args argument");
static_assert(constexpr_sum(is_kw_only<Extra>::value...)<=1,"py::kw_only may be specified only once");
static_assert(constexpr_sum(is_pos_only<Extra>::value...)<=1,"py::pos_only may be specified only once");