Сегодня меня посетил Баттхерт. С большой буквы. Инерция мышления в элементарном вопросе всегда умеет объяснить, внятно и доходчиво, какой же ты дремучий идиот.
Меня всегда доставали предупреждения (warnings) о неиспользуемых параметрах в функции. Оно, с одной стороны, полезно, чтобы при рефакторинге кода не упустить тот факт, что параметр больше не нужен. Но, с другой стороны, имена параметров документируют функцию, и их терять не хочется — даже для неиспользуемых параметров (переопределение виртуальных функций). Поскольку я придерживаюсь того мнения, что варнинги — это зародыши багов, я их всегда вычищаю. Даже «безопасные» предупреждения мне в выводе компилятора не нужны. Так что я — до сегодняшнего дня — имена неиспользуемых параметров комментировал.
А сегодня в чужом коде наткнулся на следующее, и испытал тот самый баттхерт.
1 2 3 4 5 6 |
uint32_t readFieldBegin(std::string& name) { (void) name; return 0; } |
Мне не приходило в голову просто использовать неиспользуемую переменную… она же неиспользуемая…
Пойду выпью.
В Qt же для этого есть специальный макрос Q_UNUSED ( name ).
gcc на такое будет всё равно ругаться =) «(void) name;» — типа неиспользуемое обращение к переменной
Точно? MinGW у меня не ругается, а MinGW — это тот же gcc.