Unused parameter in c++11

c++, c++11, unused-variables

Solution

I have used a function with an empty body for that purpose:

template <typename T>
void ignore(T &&)
{ }

void f(int a, int b)
{
  ignore(a);
  ignore(b);
  return;
}

I expect any serious compiler to optimize the function call away and it silences warnings for me.

Problem

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) ``` For example ``` int main(int argc, char *argv[]) { UNUSED(argc); UNUSED(argv); return 0; } ``` But macros are not best practice for c++, so. Does any better solution appear with c++11 standard? I mean can I get rid of macros? Thanks for all!

Original source