【发布时间】:2015-12-13 04:43:33
【问题描述】:
以下内容适用于 gcc 5.2 和 clang 3.7,但适用于 msvc 2015:
#include <functional>
int main()
{
auto const foo = [](auto&& i) {
auto const bar = []{ return 100; };
return bar();
};
std::function<int(int)> fn = foo;
return 0;
}
是 msvc 的 bug 还是 gcc 和 clang 太松散?
【问题讨论】:
-
Visual Studio 的哪个版本?
-
改成
auto const foo = [](auto&& i) -> int {会编译 -
@melak47 明确指定返回类型确认与 vs2015 一起使用。虽然它不适用于最新的(它是最新的吗?)编译器 v19.00.23602.0 (webcompiler.cloudapp.net)。无论如何,我认为没有必要指定返回类型。
-
我肯定还是会提交一个错误,更新 1 和我认为编译器的 WIP 更新 2 版本都不接受它。
标签: c++ visual-c++ gcc lambda c++17