编写一个 if 语句来测试命名空间中的所有元素

问题描述 投票:0回答:1

我有一个命名空间,其中包含许多元素。使用

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) {
    //...
}

但是,如果我的命名空间有很多元素,通过单独声明它们来测试所有元素是不可行的。有什么好的方法可以做到这一点?

c++ if-statement namespaces
1个回答
0
投票

您还可以在 namespace 中创建一个

set
并将每个变量的值添加到其中:

std::set<int> s = {FOO, BAR /*add here further variables if you want*/};

然后您可以检查是否

A::s.contains(test)

© www.soinside.com 2019 - 2024. All rights reserved.