Почему это не удается скомпилировать?
char programDate[] = "("__DATE__")";
Но это компилируется отлично (см. пробел):
char programDate[] = "(" __DATE__")";
Я знаю, что VC2015 теперь поддерживает литеральные операторы. Но разве это не должно быть на этапе компиляции? __DATE__
должен быть обработан препроцессором. Что здесь происходит?
Я подумал о проблеме с сочетанием совпадений с сборкой Unicode/non-Unicode, но это не помогает. Это не просто проблема с предопределенными макросами, но и с определением пользователя:
#define MACRO "abc"
char data[] = "("MACRO")";
EDIT:
Error C3688 invalid literal suffix '__DATE__'; literal operator or literal operator template 'operator ""__DATE__' not found