There is a discrepancy between boost:: and std:: type traits. #include <boost/type_traits.hpp> #include <type_traits> #include <cstdio>
int main(int argc, char *argv[]) { fprintf(stderr, "std::has_trivial_destructor<void> = %i\n", std::has_trivial_destructor<void>::value); fprintf(stderr, "boost::has_trivial_destructor<void> = %i\n", boost::has_trivial_destructor<void>::value); return 0; } According to STD void does not have a trivial destructor, but according to boost it does. Please state which result is correct and if it's boost's case, then fix the traits. -- Summary: void has no trivial destructor Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: piotr dot wyderski at gmail dot com GCC host triplet: Cygwin/GCC4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40258