2

我正在尝试编译一个开源项目,但我从 g++ 中遇到了这个问题

error: function definition does not declare parameters

代码是这样的

#include <iostream>

namespace hi {

  class hello {
 public:
    bool first { true };
  };

}

int main(int argc, char *argv[])
{
  hi::hello h

  std::cout << "output: " << h.first << std::endl;

  return 0;
}

编译时会产生与开源项目代码相同的编译问题

g++ -O2 bools.cpp -o bools -std=c++0x

但是,如果我尝试使用相同的选项编译此代码,它将按应有的方式编译和运行

#include <iostream>

int main(int argc, char *argv[])
{
  bool value { true };

  std::cout << "output: " << value << std::endl;

  return 0;
}

我在 Ubuntu 64 位上使用 g++ 4.6.3。

谢谢你的时间。

4

1 回答 1

2

在. _ _ gcc 4.7您可以在此处查看C++0x/C++11功能gcc支持的版本列表。此功能的行说:

Non-static data member initializers   |  N2756 |    GCC 4.7

这在更大范围内工作得非常好,在这里gcc 4.7看到它。

于 2013-09-29T01:41:53.307 回答