constexpr function で引数を unused にする

  • bool を返す constexpr function
  • 互換性の関係で引数を省略できない
  • 実装的には、引数は使用せず常に false を返す
  • C++11 の constexpr function なので (void)param; を置いて回避する手は使えない
  • Doxygen に怒られるので仮引数の型だけ残して仮引数をコメントアウトする手は使えない

という条件でどうやって compiler, Doxygen, cppcheck の警告を完全回避できるんだ…と思ったんだが、 世の中には同じことを既に解決している人が既に居た。

stackoverflow.com

constexpr bool isfoo(int param) {
  return (void)param, false;
}

なるほど…。 constexpr function で , 演算子を使うのは当たり前にやってるけど、 このケースで組み合わせるのは思い付かなかった…。