看来你可以这样返回一个未命名的struct
:
auto foo() {
struct {
int bar;
int square() {
return bar * bar;
}
} a { 7 };
return a;
}
有没有办法在没有冗余变量名 a
的情况下匿名执行此操作?
最佳答案
对于初学者来说,C++ 没有定义匿名结构。我认为你的意思是一个未命名的结构。
根据 ro C++ 标准,return 语句定义为(8.6 跳转语句)
return expr-or-braced-init-listopt ;
因此您不能在返回语句中使用声明。如果是这样,那么您需要初步声明将返回的结构类型的对象。
关于c++ - 返回匿名结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56933382/