加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – std :: function typedef中的参数名称

发布时间:2020-12-16 09:43:13 所属栏目:百科 来源:网络整理
导读:我知道我可以像这样输入一个 std::function : typedef std::functionvoid (const std::string) TextChangedHandler 是否允许在typedef中指定参数名称,以使其更加自我记录?例如: typedef std::functionvoid (const std::string text) TextChangedHandler
我知道我可以像这样输入一个 std::function

typedef std::function<void (const std::string&)> TextChangedHandler

是否允许在typedef中指定参数名称,以使其更加自我记录?例如:

typedef std::function<void (const std::string& text)> TextChangedHandler

我可以添加参数名称,它在Visual C 2010上编译得很好,但我想确保它符合C 03 / C 11标准.

解决方法

是.

这种指定函数类型而没有声明符来命名函数的形式在语法上是一个type-id(8.1):

type-id:
    type-specifier-seq abstract-declarator[opt]

abstract-declarator:
    ptr-operator abstract-declarator[opt]
    direct-abstract-declarator

direct-abstract-declarator:
    direct-abstract-declarator[opt] ( parameter-declaration-clause ) cv-qualifier-seq exception-specification
    direct-abstract-declarator[opt] [ constant-expression ]
    ( abstract-declarator )

parameter-declaration-clause语法与普通函数声明中的语法相同,它允许每个参数具有名称(声明符)或不具有(抽象声明符)(8.3.5):

parameter-declaration-clause:
    parameter-declaration-list[opt] ...[opt]
    parameter-declaration-list[opt],...

parameter-declaration-list:
    parameter-declaration
    parameter-declaration-list,parameter-declaration

parameter-declaration:
    decl-specifier-seq declarator
    decl-specifier-seq declarator = assignment-expression
    decl-specifier-seq abstract-declarator[opt]
    decl-specifier-seq abstract-declarator[opt] = assignment-expression

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读