C++11 for xCode errors

C++11 for xCode errors

本文关键字:errors xCode for C++11      更新时间:2023-10-16

我想使用std集合,例如我的xCode 4.5项目中的std::vector。下面的解释中没有名为'shared_ptr'在命名空间'我相应地改变了我的编译器选项,但现在当我来构建项目时,我得到了一堆错误,如Type float cannot be narrowed to GLubyte (aka unsigned char) in initializer list

这些错误是在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不允许在初始化器列表中隐式转换,特别是在这种情况下从floatunsigned 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)};