如果要将可变数量的枚举/值对传递给函数,该怎么做?像这样试过
template<typename EnumT, typename CharT, std::pair<EnumT, CharT> KeyValueT>
constexpr auto makeStringsMap(KeyValueT... kv)
{
}
所以
template<typename... KeyValueT>
constexpr auto makeStringsMap(KeyValueT... kv)
{
static_assert(std::is_enum_v<decltype(std::get<0>(kv))>);
}
在这两种情况下,编译器都在运行
断言方法 - 如果使用不正确,会导致函数内部出现编译错误。
另一种变体:
工作检查: