それが可能かどうかはわかりませんが、次のようなことをしたいです
int someval = 1;
if({1,2,3,4}_v.contains(someval ))
しかし、リテラルを次のように定義しようとすると:
std::vector<int> operator"" _v ( std::initializer_list<int> t )
{
return std::vector<int> (t);
}
取得した int のイニシャライザ リストを受け入れる
error: 'std::vector<int> operator"" _v(std::initializer_list<int> t)' has invalid argument list
これを行う方法はありますか?私が本当に欲しいのは、最終的に次のようなものを取り除くことです
if(value == 1 || value ==2 || value == 3 ...
このようなものを書かなければならないのは本当に面倒です。
if value in (value1, value2 ...)
または似たようなもの。