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,,