繁体   English   中英

C++11 lambda 函数中的异常规范

[英]Exception specification in C++11 lambda Functions

使用命名函数,可以指定可能抛出的异常,如

void func(void) throw (string);

如何在 C++ lambda 函数中指定异常?

真的一样。 [expr.prim.lambda] 中 lambda 的相关语法是:

lambda 表达式
lambda-introducer lambda-declarator opt复合语句

lambda 介绍人
[ lambda 捕获选项]

lambda 声明符
(参数声明子句) mutable选择
异常规范选择属性说明符序列选择尾随返回类型选择

您可以在参数后提供可选的异常规范 例如:

auto never_throws = []() noexcept {
    return 5;
};

int i = never_throws(); // won't throw

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM