W
White Wolf
tom_usenet wrote:
[SNIP]
Initialization is the action. An action of giving a determined value to
some object. If this is not done, well, then it is not initialized.
This is a sort of foxymoron. A smart way of telling that if I do not
initialize (give a value) to an object I still initialize (give a value) to
an object. Something is not right here. Later of course we say: well, we
have initialized the value but..., hm, khm, we still cannot use it until we
give a value to it. Something is not right. We have to be brave enough to
say: no initialization happens. The POD is not necessarily itself. That
int might not be int! How could we say: it is initialized? If the standard
says that - it is wrong. We can vote to say the Earth is flat and the fixed
center of the universe it will still not be.
Nope. It is invalid, not indetermined.
Totally different case.
And it is still moving... ;-)
[SNIP]
Yes, when you don't give an initializer, it is still initialized.
"Initializer" and "Initialization" are different things. Even if you
don't use an initializer, initialization still takes place.
Initialization is the action. An action of giving a determined value to
some object. If this is not done, well, then it is not initialized.
This is a sort of foxymoron. A smart way of telling that if I do not
initialize (give a value) to an object I still initialize (give a value) to
an object. Something is not right here. Later of course we say: well, we
have initialized the value but..., hm, khm, we still cannot use it until we
give a value to it. Something is not right. We have to be brave enough to
say: no initialization happens. The POD is not necessarily itself. That
int might not be int! How could we say: it is initialized? If the standard
says that - it is wrong. We can vote to say the Earth is flat and the fixed
center of the universe it will still not be.
The lvalue to rvalue thing applies to things that have been
initialized too:
int* p = new int;
delete p; //p now indeterminate (but obviously initialized)
Nope. It is invalid, not indetermined.
int* q = p; //error, lvalue-to-rvalue conversion
Totally different case.
And it is still moving... ;-)