c++type-traitsstdlibstdc++

Is it possible to have a library implementation of is_trivially_constructible without relying on compiler builtins?


I'm using gcc-4.9 which does not have the is_trivially_constructible type trait. Looking into the libstdc++ source code (type_traits), this depends on __is_trivially_constructible which is implemented in the compiler itself.

I was wondering if it was possible to implement this trait as a library rather than relying on compiler such that I can use this in my project which is stuck using gcc-4.9.


Solution

  • No, it's not possible (otherwise we probably would have already done it in libstdc++!)

    We had to wait for the new compiler builtin to be implemented.

    Using is_scalar is a conservative approximation, but is obviously wrong for trivially constructible class types.