1. ホーム
  2. c++

[解決済み] c++11の未使用パラメータ

2023-05-17 03:37:31

質問

c++03以前のバージョンで、未使用のパラメータに関するコンパイラの警告を無効にするために、私は通常このようなコードを使っています。

#define UNUSED(expr) do { (void)(expr); } while (0)

例えば

int main(int argc, char *argv[])
{
    UNUSED(argc);
    UNUSED(argv);

    return 0;
}

しかし、マクロはc++のベストプラクティスではありません、だから。 c++11標準では、何か良い解決策があるのでしょうか?つまり、マクロを取り除くことができるのでしょうか?

すべてに感謝します!

どのように解決するのですか?

私はそのために、空のボディを持つ関数を使用しました。

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

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

私はどんな真面目なコンパイラでも関数呼び出しを最適化することを期待していますし、それは私のために警告を黙らせてくれるのです。