Могу ли я определить, является ли аргумент строковым литералом?

Можно ли определить, является ли аргумент, переданный в макросе или функции, строковым литералом во время компиляции или выполнения?

Например,

#define is_string_literal(X)
...
...   

is_string_literal("hello") == true;
const char * p = "hello";
is_string_literal(p) == false;

или

bool is_string_literal(const char * s);

is_string_literal("hello") == true;
const char * p = "hello";
is_string_literal(p) == false;

Спасибо .

18
задан absurd 17 April 2011 в 03:52
поделиться