私はC++を学んでおり、次のことを行うための最良または最も慣用的な方法は何だろうと思っています。プログラムで一定になる既知の受け入れられた文字列のリストがあります。関数に提供された文字列が、受け入れた文字列のリストに含まれているかどうかを知りたいです。私が思いついた:
bool match(const char* foo, const char* bar) {
return strcmp(foo, bar) == 0;
}
bool thingIsValid(const char* thing) {
return match("foo", thing) || match("bar", thing) || match("baz", thing);
}
...
thingIsValid(someArg.c_str());
...
このアプローチは、私には C のイディオムのように思えます。他の言語では、おそらくリストを持っていて、そのリストで .contains(thing) を実行します。人々は通常、C++ でこれをどのように行うのでしょうか?