Created on 2006-11-13.00:00:00 last changed 171 months ago
Proposed resolution:
Modify the last bullet of § 17.4.3.6/2 [res.on.functions] to allow for exceptions:
- if an incomplete type (3.9) is used as a template argument when instantiating a template component, unless specifically allowed for the component.
In the latest available draft standard (N2134) § 17.4.3.6 [res.on.functions] states:
-1- In certain cases (replacement functions, handler functions, operations on types used to instantiate standard library template components), the C++ Standard Library depends on components supplied by a C++ program. If these components do not meet their requirements, the Standard places no requirements on the implementation.
-2- In particular, the effects are undefined in the following cases:
[...]
- if an incomplete type (3.9) is used as a template argument when instantiating a template component.
This is contradicted by § 20.6.6.2/2 [util.smartptr.shared] which states:
[...]
The template parameter T of shared_ptr may be an incomplete type.
History | |||
---|---|---|---|
Date | User | Action | Args |
2010-10-21 18:28:33 | admin | set | messages: + msg3210 |
2006-11-13 00:00:00 | admin | create |