如果枚举是连续的,有没有办法在 C++11 中检查?
给出不是的枚举值是完全有效的。是否有像 C++14、C++17 或 C++20 中的类型特征这样的特性来检查枚举是否连续?这将在 static_assert 中使用。
一个小例子如下:
enum class Types_Discontinuous {
A = 10,
B = 1,
C = 100
};
enum class Types_Continuous {
A = 0,
B = 1,
C = 2
};
static_assert(SOME_TEST<Types_Discontinuous>::value, "Enum should be continuous"); // Fails
static_assert(SOME_TEST<Types_Continuous>::value, "Enum should be continuous"); // Passes
Run Code Online (Sandbox Code Playgroud) 经常使用微控制器和 C++,知道我不执行动态内存分配对我来说很重要。但是,我想充分利用 STD 库。确定 STD 中的函数/类是否使用动态内存分配的最佳策略是什么?
到目前为止,我想出了这些选项:
如果您看到任何其他选项或有做类似事情的经验,请告诉我。
ps 目前我主要使用 ARM Cortex-Mx 芯片使用 GCC 进行编译。