我需要检查是否在枚举类型中定义了某些值,或者在 C++ 的运行时没有定义。该要求可以通过 C# 轻松完成(参考以下代码)。但是 C++ 在运行时没有类型信息(据我所知)。有没有办法解决?
PS:在我的项目中,枚举类型定义了数百个值,所以我不想复制源代码中的值(例如,创建一个映射并将所有有效值推入其中)实现增加复杂性的逻辑可维护性。
enum BoFormObjectEnum
{
fo_Items = 4,
fo_SalesEmployee = 53,
fo_TransactionTemplates = 55,
fo_JournalPosting = 30,
fo_CheckForPayment = 57,
fo_PaymentTermsTypes = 40,
...
}
class Program
{
static void Main(string[] args)
{
var array = Enumerable.Range(1, 60);
foreach (var item in array)
{
if (Enum.IsDefined(typeof(BoFormObjectEnum), item))
// do some logic
else
// do some other logic
}
}
}