返回值为 class 名称后跟一对空括号是什么意思?

What is the meaning of, returning value being a class name followed by a pair of empty parentheses?

我想知道 return 一个 class/structure 名称后跟括号的函数是什么意思。

例如:

struct X{...}; //structure with static members

X g(){ return X(); }; 

我在下面 link 中找到了这个: https://en.cppreference.com/w/cpp/language/static#Explanation

X() 

调用结构 X 的 default-constructor。

return X();

表示构造一个X和return的临时实例。更具体地说,这里的临时文件是调用函数的 pure r-value which will be moved to the lvalue

auto objectX = g();

通过上面的语句,objectX(左值)将通过移动从g()创建的临时文件来初始化。

在此处查看有关 C++ 中 值类别 的更多信息:https://en.cppreference.com/w/cpp/language/value_category