相关疑难解决方法(0)

关于-Waggregate-return的目的/行为的困惑?

在看GCC的警告选项时,我遇到了-Waggregate-return.

-Waggregate-return
如果定义或调用任何返回结构或联合的函数,则发出警告.(在可以返回数组的语言中,这也会引发警告.)


引发警告的小例子:

class foo{};
foo f(void){return foo{};}
int main(){}
Run Code Online (Sandbox Code Playgroud)

$ g ++ -std = c ++ 0x -Waggregate-return -o main main.cpp
main.cpp:在函数'foo f()'中:
main.cpp:2:5:warning:函数返回一个聚合[-Waggregate-返回]


另一个不引发警告的小例子:

#include <string>
std::string f(void){return "test";}
int main(){}
Run Code Online (Sandbox Code Playgroud)

使用-Waggregate-return可以获得什么好处?
为什么有人想要对此发出警告?
另外,std :: string不是一个类吗? - 为什么我不警告第二个例子中的'返回聚合'?

c++ gcc warnings g++ gcc-warning

9
推荐指数
2
解决办法
3872
查看次数

标签 统计

c++ ×1

g++ ×1

gcc ×1

gcc-warning ×1

warnings ×1