【发布时间】:2020-09-25 12:27:52
【问题描述】:
如何将一个范围内的枚举作为函数参数传递给另一个?由于这是失败的:
enum class L;
struct TestClass
{
void foo(L n)
{
int v = static_cast<int>(n);
int r[v] = { 9 };
cout << "\n" << v << "\n";
}
};
int main()
{
enum class L : int
{
A, B, C, D
};
TestClass main;
main.foo(L::D);
return 0;
}
error: cannot convert ‘main()::L’ to ‘L’
80 | main.foo(L::D);
| ~~~^
| |
| main()::L
如何解决这个问题(在确切的地方,而不是将枚举移动到其他范围)?
【问题讨论】:
标签: c++ function enums scope compile-time