Fehler beim Verweisen auf eine strukturierte gebundene Variable in einem LambdaC++

Programme in C++. Entwicklerforum
Guest
 Fehler beim Verweisen auf eine strukturierte gebundene Variable in einem Lambda

Post by Guest »

Ich habe das folgende Bit C ++ 20 Code: < /p>

Code: Select all

#include 
#include 

void something()
{
std::map m;

int j = 123;

for (auto& [s,i] : m)
{

const auto foo = [&](const auto& j) -> bool
{
return j == i;
};

if (foo(j))
break;
}
}
< /code>
Wenn ich es mit GCC kompile, funktioniert es gut, aber Clang gibt den folgenden Fehler an: < /p>
error: reference to local binding 'i' declared in enclosing function 'something'
return j == i;
Godbolt Link: https://godbolt.org/z/nveqscoqn
Welcher Compiler ist in dieser Situation korrekt?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post