为何C++标准不允许Concept与类使用同名?
为何C++标准不允许Concept与类同名?
我始终没搞明白,明明可能存在一个非常简单的原因,但就是理不清——为什么C++标准不允许Concept和类同名?
Concept无法用于作用域解析,而且将其用作函数参数时必须搭配auto,因此我认为即便二者同名,编译器完全能明确区分程序员想使用的是Concept还是类型:
SomeConcept::Whatever // 不可能是Concept的用法 void someFunc( SomeConcept auto& x ) // 必须带auto,明确是Concept template<SomeConcept T> // 替代typename的位置,明确是Concept
我觉得「便于解析」并非充分的理由。
内容的提问来源于stack exchange,提问作者Newline
相关产品推荐
相关产品推荐

