diff --git a/Sofa/framework/Helper/src/sofa/helper/ScopedAdvancedTimer.h b/Sofa/framework/Helper/src/sofa/helper/ScopedAdvancedTimer.h index 29a531fa644..6fd1c97e6de 100644 --- a/Sofa/framework/Helper/src/sofa/helper/ScopedAdvancedTimer.h +++ b/Sofa/framework/Helper/src/sofa/helper/ScopedAdvancedTimer.h @@ -84,7 +84,10 @@ ScopedAdvancedTimer::ScopedAdvancedTimer(const char* message, T* obj) #define SCOPED_TIMER_VARNAME_AD(varname, name) #endif -#define SCOPED_TIMER(name) SCOPED_TIMER_TR(name); SCOPED_TIMER_AD(name) +consteval const char* ensure_name_must_be_a_compile_time_string_literal(const char* s) { return s; } +#define ENSURE_SCOPED_ADVANCED_TIMER_ARG_IS_CONSTEXPR(s) ensure_name_must_be_a_compile_time_string_literal(s) + +#define SCOPED_TIMER(name) ENSURE_SCOPED_ADVANCED_TIMER_ARG_IS_CONSTEXPR(name) ; SCOPED_TIMER_TR(name); SCOPED_TIMER_AD(name) #define SCOPED_TIMER_DYN(name) SCOPED_TIMER_DYN_TR(name); SCOPED_TIMER_AD(name) -#define SCOPED_TIMER_VARNAME(varname, name) SCOPED_TIMER_VARNAME_TR(varname, name); SCOPED_TIMER_VARNAME_AD(varname, name) +#define SCOPED_TIMER_VARNAME(varname, name) ENSURE_SCOPED_ADVANCED_TIMER_ARG_IS_CONSTEXPR(name) ; SCOPED_TIMER_VARNAME_TR(varname, name); SCOPED_TIMER_VARNAME_AD(varname, name) #define SCOPED_TIMER_VARNAME_DYN(varname, name) SCOPED_TIMER_VARNAME_DYN_TR(varname, name); SCOPED_TIMER_VARNAME_AD(varname, name)