https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86398
Bug ID: 86398 Summary: is_trivially_constructible always returns true even when is_constructible returns false Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: arthur.j.odwyer at gmail dot com Target Milestone: --- This actually looks like a duplicate of PR80682, but that one was closed as "fixed" a while back, and the bug is still present. // https://godbolt.org/g/SfcQiC #include <type_traits> int x[] = { std::is_trivially_constructible_v<int,void*>, std::is_constructible_v<int,void*>, }; int main() { printf("%d %d\n", x[0], x[1]); } On Clang this prints "0 0" because `int` is not constructible from `void*`. On GCC this prints "1 0": `int` is trivially constructible, yet not constructible, from `void*`.