C++ C++;11用于xCode错误

C++ C++;11用于xCode错误,c++,xcode,c++11,cocos2d-iphone,std,C++,Xcode,C++11,Cocos2d Iphone,Std,我想在我的xCode 4.5项目中使用std集合,例如std::vector。按照这里的解释,我相应地更改了编译器选项,但现在当我构建项目时,我遇到了一系列错误,例如在初始化列表中,Type float不能缩小为GLubyte(也称为unsigned char) 这些错误在ccType.h中,它是我在游戏中使用的Cocos2d库的一部分 我认为正确的做法不是开始调试Cocos2d,而是更改一些编译器选项 我应该如何进行 以下是导致错误的代码: static inline ccColor4B cc

我想在我的xCode 4.5项目中使用std集合,例如
std::vector
。按照这里的解释,我相应地更改了编译器选项,但现在当我构建项目时,我遇到了一系列错误,例如在初始化列表中,
Type float不能缩小为GLubyte(也称为unsigned char)

这些错误在ccType.h中,它是我在游戏中使用的Cocos2d库的一部分

我认为正确的做法不是开始调试Cocos2d,而是更改一些编译器选项

我应该如何进行

以下是导致错误的代码:

static inline ccColor4B ccc4BFromccc4F(ccColor4F c) {
    return (ccColor4B){c.r*255.f, c.g*255.f, c.b*255.f, c.a*255.f};
}

错误消息与我上面提到的完全相同

您应该相应地强制转换类型,因为C++11不允许在初始化器列表中进行隐式转换,特别是在本例中,从
float
unsigned char

我想这应该足以解决这个问题:

return (ccColor4B){static_cast<GLubyte>(c.r*255.f), static_cast<GLubyte>(c.g*255.f), static_cast<GLubyte>(c.b*255.f), static_cast<GLubyte>(c.a*255.f)};
return(ccColor4B){static_cast(c.r*255.f)、static_cast(c.g*255.f)、static_cast(c.b*255.f)、static_cast(c.a*255.f)};

向我们显示导致错误的代码。同时请提供完整且未经编辑的错误消息。另外,请在代码中标出错误的位置。谢谢@RobertHarvey我编辑了问题以添加代码。错误信息与我在原始问题中所写的完全相同。仅在初始值设定项列表中,ThoughThank@Jack。这是为了做一个C风格的转换(这些错误,但现在当我去构建我的项目时,我得到了新的错误)。“~b2Body”是b2Body的私有成员,位于#endif//!defined(_LIBCPP_有_无值_引用)和&!defined(_LIBCPP_有_无变量)_LIBCPP_内联_可见性无效销毁(指针){u p->}for中的“二进制表达式('b2Body'和'b2Body*')中的操作数无效(;\uuuu first!=\uuu last;+++\uu first)。