Аргумент функции как __builtin_constant_p? - PullRequest
0 голосов
/ 29 января 2019

Возможно ли иметь аргумент функции __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 или что-то подобное?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...