id summary reporter owner description type status milestone component version severity resolution keywords cc 12285 type_traits must assert type completeness for some traits Antony Polukhin John Maddock "Without that check hard detectable errors are possible: {{{ #include struct foo; void kill_sanity() { (void)boost::is_constructible::value; } struct foo{}; int main() { static_assert(boost::is_constructible::value, ""foo must be constructible from foo""); // Ooops } }}} All the is_*constructible, is_base_of, is_convertible, is_destructible, is_*swappable, has_virtual_destructor traits must assert completeness. Solution could be to create an asserting structure (pseudocode): {{{ template struct assert_complete { template yes_type test(mpl::int_* = 0); template no_type test(...); static_assert(sizeof(test(0)) == sizeof(yes_type), ""T must be a complete type!""); }; }}}" Bugs closed To Be Determined type_traits Boost 1.61.0 Problem fixed