Pages

30 June, 2024

Is there a __builtin_constant_p() for Visual C++?

Is there some function like GCC's __builtin_constant_p() for Microsoft Visual Studio? As I understand, the function returns non-zero if the argument is constant, like a string literal.



In the answer here (How to have "constexpr and runtime" alias) is a nice use case of it.



EDIT:
My idea was instead of writing something like:

#include
int foo() {
return strlen("text");
}




I could write:

#include
// template_strlen() would be a function that gets the length of a compile-time const string via templates
#define STRLEN(a) (__builtin_constant_p(a) ? template_strlen(a) : strlen(a))
int foo() {
return STRLEN("text");
}




(I guess that is about what was written in the linked question.)
All I need for that is a variant of __builtin_constant_p().

No comments:

Post a Comment

Thanks