【问题标题】:C++ program running in Xcode, but not Eclipse在 Xcode 中运行的 C++ 程序,但不是在 Eclipse 中运行
【发布时间】:2019-08-18 13:58:51
【问题描述】:

问题似乎出在int m = std::max({die1, die2, die3}); 上,它在 Eclipse 中出现错误,但在 Xcode 中运行良好。这是为什么? 代码是

#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
    int die1; 
    int die2; 
    int die3; 
    cin >> die1;
    cin >> die2;
    cin >> die3;
    int m = std::max({die1, die2, die3}); 
    cout << m << endl; 
return 0;
}

错误是

../src/playground.cpp:19:22: 错误:预期表达式
int m = std::max({die1, die2, die3});
^
生成 1 个错误。
make: *** [src/playground.o] 错误 1

【问题讨论】:

  • edit 您的问题包含minimal reproducible example,否则我们只是在猜测die1 等是什么以及您包含了什么。还要确保包括从 eclipse 收到的错误。是编译器错误还是运行时?
  • @Tas 我添加了错误以及代码。

标签: c++ xcode eclipse


【解决方案1】:

我可以想到几个原因。首先,您应该 include &lt;algorithm&gt;std::max,其次初始化列表重载仅在 C++11 中添加,因此可能是您的 Eclipse 至少没有在 C++11 中编译。

【讨论】:

  • 我添加了 #include 但抛出了同样的错误。如果您不介意我问我如何检查它是否在 C++11 中编译?这是否意味着 Xcode 正在 C++11 中编译,因为代码在 Xcode 中运行良好,并且它在没有 #include 的情况下运行。
  • 是的,XCode 可能至少在 C++11 中编译。我对 Eclipse 没有太多经验,但看起来 this 应该可以帮助您设置 C++11。
猜你喜欢
  • 1970-01-01
  • 2015-02-04
  • 2011-02-15
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多