У меня есть некоторые проблемы в связи с C++ в MS VS 2015 Enterprise.Директива C++ #define preprocessor не распознается после «<text>»
Я получил директиву препроцессора, в \ Str.h
\\ \Str.h file
Line 96: #define S_COLOR_RED "^1"
и использовать его, например, в этих строках:
\\ \math\Simd.cpp file
Line 1501: idLib::common->Printf(" simd->Memcpy() "S_COLOR_RED"X\n");
Line 1527: idLib::common->Printf(" simd->Memset() "S_COLOR_RED"X\n");
Проблема заключается в том, если есть «» перед директива, C++ хочет использовать ее как пользовательский литерал, но на самом деле это просто простая константа.
После перехода к следующему, он работает:
// \math\Simd.cpp
Line 1527: idLib::common->Printf(" simd->Memset() "
Line 1527: idLib::common->Printf(S_COLOR_RED"X\n");
Что могло привести к этому? Все кредиты для id Tech, потому что эти фрагменты кода от id Tech 4 engine. Я не делал никаких изменений в исходном коде, просто пытаясь решить ошибки из загруженного источника.
Я попытался найти дополнительную информацию об этой проблеме без каких-либо результатов.
Спасибо за вашу помощь, Sanapci
Невозможно воспроизвести эту ошибку: http://ideone.com/FF6nTx Может быть, пробел между макросом и строками поможет? – Anedar
Ух, да, пустое решение тоже. :) Как я забыл попробовать это .. Спасибо. На мой вопрос забудьте оставить код ошибки: 'Тяжесть \t \t Код Описание \t \t Project File \t Line Ошибка \t \t C3688 недопустимый буквальным суффикс 'S_COLOR_RED'; литеральный оператор или литерал оператора «оператор» «S_COLOR_RED» не найден \t idLib \t C: \ Users \ sanap \ Desktop \ TTimo-doom3.gpl-1559777 \ neo \ idlib \ math \ Simd.cpp \t 1501' – Sanapci