This patch series optimizes is_scoped_enum trait performance. The first patch implements __is_scoped_enum built-in trait. The second patch optimizes is_scoped_enum trait performance by using __is_scoped_enum built-in trait if available.
The performance improvement is shown in the following benchmark: https://github.com/ken-matsui/gsoc23/blob/main/is_scoped_enum_v.md#mon-sep-11-050411-pm-pdt-2023 Time: -32.717% +/- 1.67315% Peak Memory Usage: -17.3805% +/- 0.00931763% Total Memory Usage: -19.0881% +/- 0% Ken Matsui (2): c++: Implement __is_scoped_enum built-in trait libstdc++: Optimize is_scoped_enum trait performance gcc/cp/constraint.cc | 3 + gcc/cp/cp-trait.def | 1 + gcc/cp/semantics.cc | 4 ++ gcc/testsuite/g++.dg/ext/has-builtin-1.C | 3 + gcc/testsuite/g++.dg/ext/is_scoped_enum.C | 67 +++++++++++++++++++++++ libstdc++-v3/include/std/type_traits | 12 ++++ 6 files changed, 90 insertions(+) create mode 100644 gcc/testsuite/g++.dg/ext/is_scoped_enum.C -- 2.42.0