哪个编译器是正确的(或者可能在标准中明确指定)? 这与类的属性无关。 问题可以简化为
S
问题是
struct S {}; int main() { constexpr S s{}; []{ struct { constexpr auto operator()() { return s; } } val; }; }
在此处在
s
return s;
在此范围内不可用。 clang是正确的