Наткнулся тут на стекофервлове:
C++ (Qt)
struct Base { };
struct Class : Base
{
int mem{ 0 }; // init non-static data member
Class(int i)
: Base{} // init base class
, mem{i} // init member
{
int j{i}; // init local var
int k = int{0}; // init temporary
f( { 1 } ); // init function arg
int* p = new int{1}; // new init
// int k(int()); // most vexing parse, declares function
int k{ int{} }; // ok, declares variable
int i[4]{ 1,2,3,4 }; // init array
}
Class f(int i)
{
return { i }; // init return value
}
};
Class c{1}; // init global var
Больше всего заинтересовала предпоследняя запись:
C++ (Qt)
Class f(int i) {
return { i }; // init return value
}
Вопрос - зачем может понадобится вернуть значение, которое я только что передал при инициализации?