我正在使用定义类<functional>
的库function
。但是当我尝试编译代码时,我得到一个function
没有命名类型的错误。
直到最近我才使用Microsoft Visual Studio,没有问题。现在我有时使用Eclipse和g ++在Ubuntu 14.04上工作,并在编译相同的代码时遇到此错误(除了&#39; main&#39;)。
我在这里发现了一些类似的问题,但没有一个解决方案适合我。
#include <functional>
using namespace std;
typedef function<double(double, double*)> t_function;
第三行上的错误,我也尝试了不同的(并且没有名称空间),使用不同的使用和无效
答案 0 :(得分:1)
你有一个旧版本的gcc(不太可能),或者没有在c ++ 11模式下编译(更有可能),它是用编译器标志启用的:
C ++ 11功能在GCC存储库的主干和GCC 4.3及更高版本中作为“主线”GCC的一部分提供。要启用C ++ 0x支持,请将命令行参数-std = c ++ 0x添加到g ++命令行。或者,要在C ++ 0x扩展之外启用GNU扩展,请添加-std = gnu ++ 0x。 GCC 4.7及更高版本支持-std = c ++ 11和-std = gnu ++ 11。
This question详细描述了在Eclipse中启用c ++ 11的过程,尽管它已经过时了。