是否可以在 C++11(不是更高版本)中编写一个函数来验证在编译时传递给它的字符的唯一性
verify('a');
verify('b');
verify('c');
verify('a'); //should cause compilation error
[MK编辑回答一些问题]:
- 调用总是在同一个范围内,就像上面那样一个接一个。
- 宏观解决方案也是可以接受的
- 也可以接受非类型模板参数
最佳答案
不完全是你要求的,但考虑到你的限制(相同的范围和宏解决方案是可以接受的)你可以尝试这样的事情:
#define verify(x) class _tmp_##x {};
例子:
int main()
{
verify(a);
verify(b);
verify(a);
return 0;
}
由于重新定义本地类 _tmp_a
将导致编译失败。
关于c++ - 在编译时检查字符的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48531538/