Improving Metafunction readability through type name aliasing
GCC fixes