Topic: Defect Report: Standard library templates and incomplete types
Author: "Nicola Musatti" <nicola.musatti@gmail.com>
Date: Mon, 13 Nov 2006 09:44:26 CST Raw View
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.
The last bullet of 17.4.3.6/2 should be modified to allow for
exceptions, as in:
- if an incomplete type (3.9) is used as a template argument when
instantiating a template component, unless explicitly specified
otherwise.
Cheers,
Nicola Musatti
---
[ comp.std.c++ is moderated. To submit articles, try just posting with ]
[ your news-reader. If that fails, use mailto:std-c++@ncar.ucar.edu ]
[ --- Please see the FAQ before posting. --- ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html ]