'function'不命名类型(在 Eclipse 中)
'function' does not name a type (in Eclipse)
我正在使用定义类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的过程,尽管它相当老了。
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- 库函数需要一个 std::function<void(void)>,如何传入类函数?
- Confusion: decltype vs std::function
- 为什么 std::function 可以作为 std::not2 的参数?
- 'max'匹配'std::function<const int &(const int &, const int &)>'无过载
- 传递给std::function template的template参数究竟代表什么
- 将带有unique_ptr的可变 lambda 传递给 const&std::function
- 无法在Ubuntu上将共享库与Eclipse链接
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- "no matching function for call to 'Vector::Vector'"错误
- 如何在向量中删除 std::function<void()>?
- Eclipse CDT:单个项目中有多个C++文件
- 不断"Attempting to reference a deleted function"
- 将函数包装器转换为 std::function
- C++ 运行时链接器错误 (liblog4cpp.so.5) Eclipse
- 类型擦除的std::function与虚拟函数调用的开销
- OS X上的Eclipse CDT抱怨gcc内置功能:"Function '__builtin_bzero' could not be resolved"
- 'function'不命名类型(在 Eclipse 中)
- "control reaches end of non-void function" Eclipse C++ 中的警告,但没有编译或运行时错误