在http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0088r3.html中有一条关于需要扩展std::variant<int, const int>
,并投票允许它的说明,但我无法找到实际的理由。
那为什么允许=INDEX($P$2:$P$501,MATCH(M2,$O$2:$O$501,0))
?
答案 0 :(得分:1)
本文早期版本中的基本原理和讨论部分已分为P0086 - Variant design review。
相关段落说:
variant<int, const int>
variant
可以处理const
类型:它们 只能通过variant
构建和emplace()
进行设置。如果const
和非const
类型都是替代品,活跃的 替代方法是由常规构造函数实例化/重载选择的 规则,就像任何其他可能匹配的替代类型一样。
因此,就理据而言,通过关于替代方案的部分,我们可以说:
variant
就越容易。 (否则,模板代码必须通过类型列表,删除cv限定符,消除重复项等,然后再使用它们实例化variant
。)