我有一个check_str为const char*和const char(&)[N]类型重载的函数。
void check_str(const char*) {
std::cout << "string as pointer!!" << '\n';
}
template <size_t N>
void check_str(const char(&)[N]) {
std::cout << "string as array!!" << '\n';
}
然后,我声明arr_01为const char[]:
const char arr_01[] = "Desmond";
当我打电话给他们时:
check_str("Desmond");
check_str(arr_01);
第一个调用打印"string as pointer!!",而第二个调用仍然打印"string as pointer!!"。
好吧,如果我使用std::stringor std::string_view,它将失去对它们进行分类的意义。
有没有办法调用具有参数类型的重载函数const char(&)[N]以便在不指定非类型模板参数的情况下arr_01打印?"string as array!!"