In the C++ standard one can find examples of prvalue expressions:
"prvalue
The following expressions are prvalue expressions:
a literal (except for string literal), such as 42, true or nullptr;
a function call or an overloaded operator expression of non-reference return type, such as str.substr(1, 2), str1 + str2, or it++; ..."
Is this where an expression such as T()
(a constructor call) would go?
Is there another name for such expressions?
Although the particular case of a default constructor puzzles me a bit, this is considered a cast expression, which is a bit lower on the list:
Even though the idea of converting nothing is peculiar, the
T()
syntax is indeed covered as form #4 here.