type_traits header in libstdc++ 4.8 does not define is_trivially_contructible
so the code doesn't compile with it.
In this file we are using the trait for assertion to provide a better
error message. Removing it doesn't change the meaning of the code.
You could go with std::is_standard_layout<T>::value && std::is_trivial<T>::value to get more or less the same thing.