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ć?