【发布时间】:2018-07-09 22:27:32
【问题描述】:
是否有可能在 C++11(不是以后)中编写一个函数来验证在编译时传递给它的字符的唯一性
verify('a');
verify('b');
verify('c');
verify('a'); //should cause compilation error
[由 MK 编辑回答一些问题]:
- 调用总是在同一个范围内,像上面一样一个接一个。
- 宏观解决方案也可以接受
- 也可以接受非类型模板参数
【问题讨论】:
-
这些电话之间的距离可以有多远?他们总是在同一个范围内吗?您对宏解决方案满意吗?
-
还有,你打算用它做什么?
-
如果字符作为模板非类型参数传递可以吗?我的意思是:
verify<'a'>(); verify<'b'>(), verify<'c'>(), vefify<'a'>(); -
@GuillaumeRacicot - 永远不要低估 constexpr 的黑暗面的力量......我的意思是......也许你是对的,它太危险了。但真正的问题是我无法让它发挥作用。
-
可能有一种类似于this的方式。
标签: c++ c++11 constexpr compile-time