At #366 (comment),
we discovered that a definite first assignment has type void.
Returning an lvalue reference to the object parameter
is only a convention in user-provided operator= (C++𝘕).
That's the language's default,
and what is expected of a regular type.
There should be worth in Cpp2 unifying not only syntax,
but also the semantics of its operator=.
This should eliminate future guidance
around a first assignment behaving differently on whether it's definite.
It should be worth noting that
the C++1 methods to delay object creation
return a reference or pointer to the created object.
The C++ standard library follows suit,
and I can't come up with a reason for Cpp2 not to.
At #366 (comment),
we discovered that a definite first assignment has type
void.Returning an lvalue reference to the object parameter
is only a convention in user-provided
operator=(C++𝘕).That's the language's default,
and what is expected of a regular type.
There should be worth in Cpp2 unifying not only syntax,
but also the semantics of its
operator=.This should eliminate future guidance
around a first assignment behaving differently on whether it's definite.
It should be worth noting that
the C++1 methods to delay object creation
return a reference or pointer to the created object.
The C++ standard library follows suit,
and I can't come up with a reason for Cpp2 not to.