http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51365
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-11-30
21:19:28 UTC ---
Thanks for the pointer, the hardest part was naming the new intrinsic ;)
We can't have the front-end define __is_final() as an intrinsic and also define
std::__is_final as a class template, so the patches above define
__is_final_class() and std::__is_final<>
It might be better for the front end to define __is_final() then use that
directly in the library and not provide a type trait unless std::is_final gets
added to the library by a DR.
i.e. in <tuple>
template<typename _Tp>
using __empty_base
= typename conditional<__is_final(_Tp), false_type, is_empty<_Tp>>::type;