[Bug libstdc++/48526] New: [C++0x] std::is_constructible<void, Args...>::value shall be false

gintensubaru at gmail dot com gcc-bugzilla@gcc.gnu.org
Sat Apr 9 10:07:00 GMT 2011


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: unassigned@gcc.gnu.org
        ReportedBy: gintensubaru@gmail.com


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, "" );
}



More information about the Gcc-bugs mailing list