演绎指南可以有一个明确的(布尔)说明符吗?

时间:2019-04-22 13:44:15

标签: c++ language-lawyer c++20

标准的多个部分表明,推导指南不能包含explicit-specifier,而只能在其前面具有显式关键字。

喜欢:

temp.deduct.duide

  

演绎指南:

     

explicit opt 模板名称 parameter-declaration-clause )-> simple-template-id ;

请注意,该标准说:显式 opt 而不是explicit-specifier

或在dcl.fct.spec

  

explicit-specifier仅应在其类定义内的构造函数或转换函数的声明中使用; ...

但该标准还在over.match.class.deduct

中指出
  

如果函数或函数模板是从具有deduction-guide的构造函数或explicit-specifier生成的,则每个这样的概念构造函数均被视为具有相同的explicit-specifier

此引用暗示推导指南可以有一个explicit-specifier

我看不出任何特殊的原因,为什么推导指南没有explicit-specifier

是我对标准的理解还是标准本身的问题?

推论指南可以有一个explicit(bool)说明符吗?

1 个答案:

答案 0 :(得分:33)

  

我没有看到为什么推理指南没有显式说明符的任何特殊原因。

我也不是。我似乎完全受到了监督(我是conditional explicit的作者之一)。我将尝试提出一个核心问题。