http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48526
Summary: [C++0x] std::is_constructible<void, Args...>::value
shall be false
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
AssignedTo: [email protected]
ReportedBy: [email protected]
According to N3242 20.9.4.3 clause 6, the expression
std::is_constructible< void, Args... >::value
shall be false for any type pack 'Args',
because a variable definition
void t( create<Args>... );
is ill-formed, given the following function prototype:
template <class T>
typename std::add_rvalue_reference<T>::type create();
But gcc-4.6.0 rejects all following static_assert:
---------------------
#include <type_traits>
int main()
{
static_assert( !std::is_constructible<void>::value, "" );
static_assert( !std::is_constructible<void, int>::value, "" );
static_assert( !std::is_constructible<void, int, double>::value, "" );
}