Как правильно использовать атрибут ____((форматировать (printf, x, y )))внутри метода класса в С++?

Я пытаюсь определить метод класса для отладочной печати, который будет вести себя как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не является частью строки, которую я хочу напечатать?

22
задан Nathan Fellman 23 July 2012 в 21:46
поделиться