In c++03 and earlier to disable compiler warning about unused parameter I usually use such code:
#define UNUSED(expr) do { (void)(expr); } while (0) <
#define UNUSED(expr) do { (void)(expr); } while (0)