我有一个命名空间,其中包含许多元素。使用
if
语句,我想评估我的变量 int test = 0
是否等于我的命名空间中的任何元素。
例如:
namespace A {
int FOO = 1;
int BAR = 2;
}
int test = 0;
// Evaluating against all elements of the namespace
if (test == A::FOO || test == A::BAR) {
//...
}
但是,如果我的命名空间有很多元素,通过单独声明它们来测试所有元素是不可行的。有什么好的方法可以做到这一点?
您还可以在 namespace
中创建一个
set并将每个变量的值添加到其中:
std::set<int> s = {FOO, BAR /*add here further variables if you want*/};
然后您可以检查是否
A::s.contains(test)
。