gpt4 book ai didi

c++ - 在 lambda 中访问外部作用域名称,是 g++ 还是 Visual 或两者都不是,对吗?

转载 作者:可可西里 更新时间:2023-11-01 18:39:25 25 4
gpt4 key购买 nike

代码:

auto main() -> int
{
int b = 42;
auto lambasta = [&]()
{
using B_type = decltype( b );
return B_type{};
};
(void) lambasta;
}

使用 MinGW g++ 6.3.0 -std=c++14 -Wall -pedantic-errors 进行无诊断编译。无法使用 Visual C++ 2015 update 3 进行编译,

foo.cpp(6): error C2065: 'b': undeclared identifier

最佳答案

可能的解决方法:

template<typename T>
struct wrapper
{
using wrapped_t = T;
};

auto main() -> int
{
int b = 42;
auto lambasta = [&, a = wrapper<decltype(b)>()]()
{
using B_type = typename decltype( a ) ::wrapped_t;
return B_type{};
};
(void) lambasta;
}

适用于 GCC 6.3 和 MSVC 2015 up 3

关于c++ - 在 lambda 中访问外部作用域名称,是 g++ 还是 Visual 或两者都不是,对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42526921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com