This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.
1260.is_constructible<int*,void*>
reports true
Section: 21.3.6.4 [meta.unary.prop] Status: Resolved Submitter: Peter Dimov Opened: 2009-11-07 Last modified: 2016-01-28
Priority: Not Prioritized
View other active issues in [meta.unary.prop].
View all other issues in [meta.unary.prop].
View all issues with Resolved status.
Discussion:
The specification of is_constructible<T,Args...>
in N3000 uses
static_cast<T>(create<Args>()...)
for the one-argument case, but static_cast
also permits unwanted conversions such as void*
to T*
and Base*
to Derived*
.
[ Post-Rapperswil: ]
Moved to NAD Editorial Resolved, this issue is addressed by paper n3047
Proposed resolution:
Change 21.3.6.4 [meta.unary.prop], p6:
the predicate condition for a template specialization
is_constructible<T, Args>
shall be satisfied, if and only if the following expression CE variable definition would be well-formed:
if
sizeof...(Args) == 0 1
, the expression:static_cast<T>(create<Args>()...) T t;otherwise the expression:
T t(create<Args>()...);
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4