对Cocos2d-x尺寸类型的引用不明确 我想在C++项目中实现一些目标C调用,即我试图做与“”(编译一些特定文件作为目标C++)相同的事情。

对Cocos2d-x尺寸类型的引用不明确 我想在C++项目中实现一些目标C调用,即我试图做与“”(编译一些特定文件作为目标C++)相同的事情。,c++,objective-c,cocos2d-x,ambiguous,C++,Objective C,Cocos2d X,Ambiguous,但随后我发现这行代码出现了“引用模糊”错误: Size visibleSize = Director::getInstance()->getVisibleSize(); 说“提到“大小”是含糊不清的” 我当前的编译器设置: C Lang Dialect : GNU99[-std=gnu99] Compiler Sources As : According to File Type C++ Language Dialect : GNU++14[-std=gnu99] C++ Standa

但随后我发现这行代码出现了“引用模糊”错误:

Size visibleSize = Director::getInstance()->getVisibleSize();
说“提到“大小”是含糊不清的”

我当前的编译器设置:

C Lang Dialect : GNU99[-std=gnu99]
Compiler Sources As : According to File Type

C++ Language Dialect : GNU++14[-std=gnu99]
C++ Standard Library : libc++ (LLVM C++ standard library with c++11 support)

问题是,
Size
类型存在于Cocos2d-x和编译器看到的头文件的其他地方

幸运的是,所有Cocos2d-x都是在自己的名称空间中定义的,因此您需要在有问题的文件中执行以下操作:

  • 从实现文件的顶部使用CC删除
  • cocos2d::
    命名空间添加到实现文件中的任何cocos2d-x类型和类引用,例如:

    cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();
    
  • 这会准确地告诉编译器您所指的
    Size
    类型


    另外,据我所知,Cocos2d-x支持C++11,但不支持C++14,所以在构建设置中更改它。

    问题在于,Cocos2d-x和编译器看到的头文件中存在
    大小
    类型

    幸运的是,所有Cocos2d-x都是在自己的名称空间中定义的,因此您需要在有问题的文件中执行以下操作:

  • 从实现文件的顶部使用CC删除
  • cocos2d::
    命名空间添加到实现文件中的任何cocos2d-x类型和类引用,例如:

    cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();
    
  • 这会准确地告诉编译器您所指的
    Size
    类型


    另外,据我所知,Cocos2d-x支持C++11,但不支持C++14,所以在构建设置中更改它。

    是所有错误消息告诉您的吗?任何后缀为
    .mm
    的文件都将被视为Objective-C++。这是所有错误消息告诉您的吗?任何后缀为
    .mm
    的文件都将被视为Objective-C++。哇!我需要完美的解释。我已经坚持了好几天了。谢谢@trojanfoe!哇!我需要完美的解释。我已经坚持了好几天了。谢谢@trojanfoe!