kvasir-io/mpl

correctly detect intrinsics and improve traits performance

Opened this issue · 0 comments

the continuation version of the traits classes are not just a comfort thing, we actually have a lot of optimization potential. Because continuation style does not force us to create a type in order to retrieve the result of a trait we could actually save work especially if the trait is just calling an intrinsic under the hood. We need a way to reliably detect if an intrinsic such as __is_union exists. here for example https://llvm.org/svn/llvm-project/libcxx/trunk/include/type_traits not all the clang supported type traits are being used, see here https://github.com/llvm-mirror/clang/blob/a38ba9770a70056f9fdd6c71f819e5db45a105e4/test/PCH/cxx-traits.cpp