我正在尝试通过枚举使用 C 风格的数组作为映射,但我不能按部分初始化数组......我将通过代码更好地解释自己:
我有类似的东西:
enum Objects{CAR = 0, PLANE, BOY};
我有:
static const char* texturePaths[] = {"..\\car.png", "..\\plane.png", "..\\boy.png"};
这实际上是我想要的方式,即
initTexture(texturePaths[CAR]);
但是通过这种方式,我必须确保我以相同的顺序声明枚举和数组。我想做这样的事情:
enum Objects{CAR = 0, PLANE, BOY, size};
const char* texturePaths[Objects::size];
texturePaths[BOY] = "..\\boy.png";
texturePAths[CAR] = "..\\car.png";
...
我知道这可以工作,但我需要在一个函数中执行它并调用它,所以运行时间。我想在编译时执行它,因为有永远不会改变的常量值,并且在运行时执行它是一种浪费。
我也知道constexpr
可以通过 lambda 函数做到这一点,但我不知道该怎么做