Jak poprawnie używać __attribute__ ((format (printf, x, y))) wewnątrz metody klasy w C ++?

Próbuję zdefiniować metodę klasy dla debugowania wydruków, które będą się zachowywaćprintf:

inline void debug(const char* fmt, ...) __attribute__ ((format (printf, 1, 2)))

To narzeka na:

error: format string argument not a string type

Przypomniałem sobie, że deklaracja metody klasowej jest ukrytathis parametr, więc zmieniłem lokalizacje parametrów na 2, 3:

inline void debug(const char* fmt, ...) __attribute__ ((format (printf, 2, 3)))

a teraz się kompiluje, ale wygląda na to, że parametry są przesunięte, jak gdybythis parametr był traktowany jako część listy argumentów.

Jak mogę powiedzieć o tej funkcjithis nie jest częścią ciągu, który chcę wydrukować?

questionAnswers(4)

yourAnswerToTheQuestion