Возможно ли иметь аргумент функции __builtin_constant_p?
Этот макрос работает нормально:
#define FOO(a) {\
static_assert(__builtin_constant_p(a));\
}
void bar() {
FOO("abc");
}
Я бы хотел превратить FOO
в функцию.Однако это не работает:
void foo(const char* a) { // how to change argument to make this work?
static_assert(__builtin_constant_p(a)); // Fails with: Static_assert failed due to requirement '__builtin_constant_p(a)
}
void bar() {
foo("abc");
}
Как я могу изменить аргумент foo
, чтобы он работал?Возможно использование шаблонов / std :: forward или что-то подобное?