Date
2010-09-12.00:00:00
Message id
4876

Content

The current working draft does specify the default c'tor of default_delete in a manner to guarantee static initialization for default-constructed objects of static storage duration as a consequence of the acceptance of the proposal n2976 but this paper overlooked the fact that the suggested declaration does not ensure that the type will be a trivial type. The type default_delete was always considered as a simple wrapper for calling delete or delete[], respectivly and should be a trivial type.

In agreement with the new settled core language rules this easy to realize by just changing the declaration to

constexpr default_delete() = default;

This proposal also automatically solves the problem, that the semantics of the default constructor of the partial specialization default_delete<T[]> is not specified at all. By defaulting its default constructor as well, the semantics are well-defined.