如何将指针值转换为枚举?

无效指针

我有以下几点:

enum TestEnum { One=1, Two, Three };

int main()
{
    char const* data = reinterpret_cast<char const*>(One);

    TestEnum e = reinterpret_cast<TestEnum>(data);
}

Clang无法编译此代码:

main.cpp:11:18: error: reinterpret_cast from 'const char *' to 'TestEnum' is not allowed
    TestEnum e = reinterpret_cast<TestEnum>(data);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

为什么reinterpret_cast在这种情况下不起作用?我已尝试删除,const但这并没有什么不同。我没有在C ++ 11规范中看到任何说明枚举特殊行为的内容。

克瑞克(Kerrek SB)

从5.2.10 / 4:“可以将指针显式转换为足够大的整数类型以容纳它。” 枚举不是整数类型。

(第5段允许相反的方向:“可以将整数类型或枚举类型的值显式转换为指针。”)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将字符串值转换为枚举

来自分类Dev

如何将int转换为枚举值C ++

来自分类Dev

在枚举类中,如何将值转换为日期?

来自分类Dev

如何将枚举转换为QString?

来自分类Dev

如何将“枚举”转换为数组

来自分类Dev

如何将枚举转换为整数

来自分类Dev

如何将枚举转换为列表

来自分类Dev

如何将int值转换为Flag枚举的int值

来自分类Dev

如何将int值转换为Flag枚举的int值

来自分类Dev

如何将枚举int值转换为离子模板中的字符串

来自分类Dev

如何将字符串转换为枚举?

来自分类Dev

如何将任意对象转换为枚举?

来自分类Dev

如何将数据库表项转换为枚举?

来自分类Dev

如何将console.readline转换为枚举?

来自分类Dev

如何将枚举序数转换为字符串?

来自分类Dev

如何将任意对象转换为枚举?

来自分类Dev

如何将RX Observable转换为Play枚举器

来自分类Dev

如何将ODataEnumValue转换为其CLR枚举类型?

来自分类Dev

如何将 Scala Seq 转换为 Java 枚举

来自分类Dev

如何将枚举名称转换为字符串?

来自分类Dev

如何将枚举定义转换为 JavaScript 对象 (json)

来自分类Dev

如何将值转换为Stream?

来自分类Dev

如何将“指针转换为指针类型”转换为const?

来自分类Dev

如何将“指针转换为指针类型”转换为const?

来自分类Dev

如何将std :: string指针转换为std :: string

来自分类Dev

C ++如何将字符串转换为指针?

来自分类Dev

如何将字节指针转换为结构

来自分类Dev

如何将OpenGL指针数学转换为Swift?

来自分类Dev

如何将双指针ctype转换为numpy数组?