【发布时间】:2021-08-05 04:27:15
【问题描述】:
我正在尝试检查 lambda 是否为 noexcept
但看起来noexcept(lambda) 没有做我认为应该做的事情。
auto lambda = [&](Widget& w){
w.build();
};
auto isNoexcept = noexcept(lambda) ? "yes" : "no";
std::cout << "IsNoexcept: " << isNoexcept << std::endl;
即使 lambda 未标记 noexcept,也会打印“IsNoexcept: yes”。
我在这里做错了什么?
【问题讨论】:
-
您想要运行时检查吗?
-
没有。只需编译时检查,以便正确实例化函数模板
-
好,我刚刚对你得到的答案投了赞成票!
标签: c++ c++11 templates lambda noexcept