C++ 在lldb中将匿名枚举用作函数参数时出错

C++ 在lldb中将匿名枚举用作函数参数时出错,c++,xcode,debugging,lldb,C++,Xcode,Debugging,Lldb,我有一个类,MyClass,它有一个重载的[]操作符,它接受类型为MyEnum的匿名枚举。我可以在代码中很好地使用它,但无法使用lldb检查对象。当我尝试时,我得到以下错误 (lldb) p myObject[MyEnum::value] error: no viable overloaded operator[] for type 'MyClass' note: candidate function not viable: no known conversion from 'int' to '

我有一个类,
MyClass
,它有一个重载的
[]
操作符,它接受类型为
MyEnum
的匿名枚举。我可以在代码中很好地使用它,但无法使用lldb检查对象。当我尝试时,我得到以下错误

(lldb) p myObject[MyEnum::value]
error: no viable overloaded operator[] for type 'MyClass'
note: candidate function not viable: no known conversion from 'int' to 'MyEnum' (aka '<anonymous enum>') for 1st argument
(lldb)p myObject[MyEnum::value]
错误:类型“MyClass”没有可行的重载运算符[]
注意:候选函数不可行:没有已知的第一个参数从“int”到“MyEnum”(又名“”)的转换
有人能解释为什么调试器不能正确转换枚举吗


[xcode 5.1.1]

您似乎需要强制转换枚举:

p myObject[(MyEnum)MyEnum::value]
           ^^^^^^^^

这只能在调试器中复制吗?或者,您可以创建一个导致类似编译器错误的测试用例吗?这只能在调试程序中重现。您是否尝试过强制转换
p myObject[(MyEnum)MyEnum::value]
@特洛伊木马不,我没有,这似乎有效。谢谢如果你能举一个小例子来说明这一点,请在bugreporter.apple.com上提交一个带有这个例子的bug。看起来不需要演员阵容。