https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68430

            Bug ID: 68430
           Summary: std::is_constructible<T>::value == true for
                    unconstructable type T
           Product: gcc
           Version: 5.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ytj000 at gmail dot com
  Target Milestone: ---

// The following code compiles in gcc (http://goo.gl/gFGc9K), but not clang
(http://goo.gl/woxdi1).
#include <type_traits>
template<class T> struct Foo { Foo(T = nullptr) {} };
using U = std::is_constructible<Foo<int>>;
bool b = U::value;  // If we remove this line, it compiles in both gcc and
clang. 
                    // The value of `b` is true in gcc, which is
counterintuitive since `Foo<int> a;` results compile-error.
int main() {}

Reply via email to