С GCC я могу указать __attribute__((format(printf, 1, 2)))
, сообщая компилятору, что эта функция принимает параметры vararg, которые являются спецификаторами формата printf.
Это очень полезно в случаях, когда я обертываю, например. семейство функций vsprintf. я могу иметь
extern void log_error(const char *format, ...) __attribute__((format(printf, 1, 2)));
И всякий раз, когда я вызываю эту функцию, gcc проверяет, соответствуют ли типы и количество аргументов заданным спецификаторам формата, как это было бы для printf, и выдавать предупреждение, если нет.
У компилятора Microsoft C/С++ есть что-то подобное?