Я пытаюсь определить метод класса для отладочных отпечатков, которые будут вести себя как printf
:
inline void debug(const char* fmt, ...) __attribute__ ((format (printf, 1, 2)))
Это жалуется:
error: format string argument not a string type
Я напомнил, что объявление метода класса имеет неявный параметр this
, поэтому я изменил расположение параметров на 2, 3:
inline void debug(const char* fmt, ...) __attribute__ ((format (printf, 2, 3)))
и теперь он компилируется, но похоже, что параметры сдвинуты, как если бы параметр this
обрабатывался как часть списка аргументов.
Как я могу сказать, что функция this
не является частью строки, которую я хочу распечатать?