假设你有一个命名空间
approvedParams {
std::string s1 = "my_string_input_1";
std::string s2 = "my_string_input_2";
}
在范围之外approvedParams存在一个函数myfun(std::string parm1)
是否可以将myfun签名限制为仅接受命名空间中的类型std::string字段approvedParams?
那是:
myfun("my_string_input_1")不会编译。
myfun(approvedParams::s1) 将编译。
我正在考虑使用enum. 但是,我最终想要使用approvedParams::s1以及s2在解析键值配置文件时。enum必须是整数类型。我没有兴趣添加另一个不必要的层map<int,std::string>来将枚举整数与std::string.