Я унаследовал некоторый код, этот код создается (для кого-то, к которому у меня нет доступа, как в более старой версии VS.) Я пытаюсь перенести его на VS2019.
Одна ошибка, которую я продолжаю получать:
Ошибка C2059 синтаксическая ошибка: '['
По адресу: \ CodeAnalysis \ SourceAnnotations.h 290
Используется для этого:
#include <CodeAnalysis/SourceAnnotations.h>
#define F_PRINT [SA_FormatString(Style="printf")] const char *
int x_sprintf(char *buffer, size_t buf_size, F_PRINT format, ...);
если я изменю x_sprintf следующим образом, он будет работать (и под работой я имею в виду, что ошибка в одной строке исчезнет).
int x_sprintf(char *buffer, size_t buf_size, [SA_FormatString(Style="printf")] const char * format, ...);
Одна проблема заключается в том, что этот F_PRINT используется повсеместно, поэтому я, скорее всего, не буду менять его повсеместно (по крайней мере, пока). Плюс тот факт, что я знаю, что он построен в какой-то момент (никаких изменений не было сделано) означает, что ошибка больше всего связана с моей средой. Может быть, мне не хватает некоторых флагов команд компилятора?
Может быть, некоторое форматирование SAL устарело, по крайней мере, если оно используется в макросах? Если да, то как мне переформатировать это?