Date: Thu, 16 Jan 2014 21:45:19 +0200
On 16 January 2014 21:41, Herb Sutter <hsutter_at_[hidden]> wrote:
> Matt quoted:
>
>
>
> "The lifetime of an object of type T begins when:
>
> � storage with the proper alignment and size for type T is obtained, and
>
> � if the object has non-trivial initialization, its initialization is
> complete."
>
>
>
> Perhaps the necessary fix is to strike �if the object has non-trivial
> initialization� here. I don�t see why trivial constructors are special �
> sure, they don�t do anything, but they are notionally important.
>
>
>
> A bag of memory of alignment and size suitable for T is-not-a T object until
> its (possibly trivial) ctor is called on that memory � it seems wrong for
> that to be true for all T except trivially-constructible T�s (with implicit
> universal type-punning for all types <= sizeof(T)).
Well, as far as I understand, trivial constructors might not be called at all.
> Matt quoted:
>
>
>
> "The lifetime of an object of type T begins when:
>
> � storage with the proper alignment and size for type T is obtained, and
>
> � if the object has non-trivial initialization, its initialization is
> complete."
>
>
>
> Perhaps the necessary fix is to strike �if the object has non-trivial
> initialization� here. I don�t see why trivial constructors are special �
> sure, they don�t do anything, but they are notionally important.
>
>
>
> A bag of memory of alignment and size suitable for T is-not-a T object until
> its (possibly trivial) ctor is called on that memory � it seems wrong for
> that to be true for all T except trivially-constructible T�s (with implicit
> universal type-punning for all types <= sizeof(T)).
Well, as far as I understand, trivial constructors might not be called at all.
Received on 2014-01-16 20:45:20