gpt4 book ai didi

c++ - xcode 5.1.1 提示 : ISO C++11 does not allow access declarations

转载 作者:搜寻专家 更新时间:2023-10-31 01:04:03 25 4
gpt4 key购买 nike

我有一个项目可以在 Xcode 4.6.3 上正常构建和运行。但它不在 Xcode 5.1.1 上。

这是我遇到的唯一错误,一百次。

“ISO C++11 不允许访问声明;请改用 using 声明”。

基本上它要我从:

typedef Something<MType>::Index Index;    
Something<MType>::N;

typedef Something<MType>::Index Index;    
using Something<MType>::N;

这是为什么?

如果我像 Xcode 所说的那样“解决它”,最终的应用程序会随机运行。

是否可以像在 4.6.3 上一样在 Xcode 5.1.1 上构建这个项目? (换句话说:更改项目设置,但保持代码完整)

AFAIS,两个 Xcode 版本的 C++ 标志具有相同的值。
C 语言方言 = GNU99 [-std=gnu99]
C++ 语言方言 = GNU++11 [-std=gnu++11]
C++ 标准库 = libc++(支持 C++11 的 LLVM C++ 标准库)

最佳答案

它看起来像是对编译器的故意更改:

http://llvm.org/viewvc/llvm-project?view=revision&revision=183882

标准机构说:“访问声明在 1998 年的标准中被弃用,并且与使用声明相比没有任何好处。它们应该在 C++0x 中删除。”

而且我找不到恢复到旧的(不符合标准的)C++11 行为的方法。我有一半希望它能工作:

clang -std=c++0x

但是,事实并非如此。你得到同样的错误。

包括 using 看起来是正确的修复。我刚刚在这里做了一些测试,它按照 jar 上说的做。

可能不是您想听到的,但我认为您应该研究为什么在使用 using 指令时代码会随机运行。

关于c++ - xcode 5.1.1 提示 : ISO C++11 does not allow access declarations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24641552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com