【问题标题】:Can Deduction Guide have an explicit(bool) specifier?演绎指南可以有一个明确的(布尔)说明符吗?
【发布时间】:2019-09-11 16:53:35
【问题描述】:

标准的多个部分表明演绎指南不能有explicit-specifier,而只能在其前面有一个显式关键字。

喜欢:

temp.deduct.duide

演绎指南:

explicitopttemplate-name (parameter-declaration-clause) -> simple-template-id ;

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

dcl.fct.spec

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

但标准中也提到over.match.class.deduct

如果函数或函数模板是从具有explicit-specifier 的构造函数或deduction-guide 生成的,则每个这样的名义构造函数都被认为具有相同的explicit-specifier

这句话暗示 deduction-guides 可以有一个explicit-specifier

我看不出有什么特别的原因说明演绎指南不能有explicit-specifier

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

演绎指南可以有explicit(bool) 说明符吗?

【问题讨论】:

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


    【解决方案1】:

    我看不出演绎指南不能有显式说明符的任何特殊原因。

    我也没有。似乎完全是我的疏忽(我是conditional explicit 的作者之一)。我会尝试提出一个核心问题。

    更新:这已在 P1968 中得到修复,在贝尔法斯特被采纳,作为核心问题 2422 解决方案的一部分。

    【讨论】:

    • 对于那些好奇的人:问题是CWG2422 Incorrect grammar for deduction-guide,它已经解决了。 (虽然找不到链接;wg21.link 给出 404)
    • @L.F.:公共问题列表已过时。更新后,wg21.link 将适用于此类最近的问题。
    猜你喜欢
    • 2021-07-05
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多