'function'不命名类型(在 Eclipse 中)

'function' does not name a type (in Eclipse)

本文关键字:Eclipse function 类型      更新时间:2023-10-16

我正在使用定义类function的库<functional>。但是当我试图编译代码时,我得到一个错误,function没有命名类型。

直到最近我还在使用Microsoft Visual Studio,没有任何问题。现在我有时用Eclipse和g++在Ubuntu 14.04上工作,在编译相同的代码时得到这个错误(除了'main')。

我在这里发现了一些类似的问题,但没有一个解决方案适用于我。

#include <functional>
using namespace std;
typedef function<double(double, double*)> t_function;

第三行错误,我也尝试了不同的(没有名称空间)使用不同的,没有工作

您使用的是旧版本的gcc(不太可能),或者没有在c++11模式下编译(更有可能),这是通过编译器标志启用的:

c++ 11特性可以作为"主线"GCC的一部分,在GCC存储库的主干和GCC 4.3及更高版本中获得。要启用c++0x支持,请在c++命令行中添加命令行参数-std=c++0x。或者,要启用除c++ 0x扩展之外的GNU扩展,添加-std= GNU 0x。GCC 4.7及以后版本也支持-std=c++11和-std=gnu++11。

这个问题详细描述了在Eclipse中启用c++11的过程,尽管它相当老了。