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

时间:2015-07-15 17:36:06

标签: c++11

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

void func(void) throw (string);

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

1 个答案:

答案 0 :(得分:2)

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

  

λ-表达
   lambda-introducer lambda-declarator opt compound-statement

     

λ-导引
  [ lambda-capture opt ]

     

λ-说明符
  ( parameter-declaration-clause ) mutable opt
  例外规范 opt attribute-specifier-seq opt trailing-return-type <子>选择

您可以在参数后面提供可选的例外规范。例如:

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

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