Путаница в отношении цели / поведения -Waggregate-return?

Глядя наНКУ»варианты предупрежденияЯ наткнулся-Waggregate обратный.

-Waggregate обратный

Предупреждать, если какие-либо функции, которые возвращают структуры или объединения, определены или вызваны. (В языках, где вы можете вернуть массив, это также вызывает предупреждение.)

Небольшой пример, который вызывает предупреждение:

class foo{};
foo f(void){return foo{};}
int main(){}

$ g ++ -std = c ++ 0x -Waggregate-return -o main main.cpp

main.cpp: в функции ‘foo f () ’:

main.cpp: 2: 5: warning: функция возвращает агрегат [-Waggregate-return]

еще один небольшой пример, который не вызывает предупреждение:

#include 
std::string f(void){return "test";}
int main(){}

Какая выгода от использования -Waggregate-return?

Почему кто-то хочет быть предупрежден об этом?

Кроме того, нетt std :: string класс?Я предупреждал овозвращенный агрегат во втором примере?

Ответы на вопрос(2)

Ваш ответ на вопрос