受到this question上的一条评论的启发,我想在我的代码中写这个,因为我可能做了错误的假设,如果我将代码移植到两个类型不是的平台,则需要调查相同。
static_assert(typeid(float) == typeid(GLfloat), "GLfloat is unexpected type");
但由于error: call to non-constexpr function ‘bool std::type_info::operator==(const std::type_info&) const’
但我可以这样写: -
static_assert(sizeof(float) == sizeof(GLfloat), "GLfloat is unexpected size");
它的工作方式与预期一致。 如果我在新平台上的假设是错误的,那么很可能足以让我产生编译时错误,但我想知道是否有任何方法可以实现我真正想要的 - 比较实际类型?
答案 0 :(得分:12)
使用特征:
#include <type_traits>
static_assert(std::is_same<float, GLfloat>::value, "GLfloat is not float");