该std::align_val_t
类型定义为:
namespace std
{
enum class align_val_t : size_t
{
};
}
这样一个空枚举的用途是什么?
和 有什么区别typedef
?
该std::align_val_t
类型定义为:
namespace std
{
enum class align_val_t : size_t
{
};
}
这样一个空枚举的用途是什么?
和 有什么区别typedef
?
它用作强类型整数,可禁用隐式类型转换。
godbolt 演示
您可以使用函数内部的std::to_underlying返回底层类型。
当您有一个函数接受许多相同类型的参数并且您想要消除歧义以避免错误地交换参数或调用错误的重载时,强类型整数很有用。
至于为什么在 中使用它
std::align_val_t
,根据 Ted Lyngmo 在评论中的说法,它很可能是为了消除可变参数情况下的operator new歧义。