问题已解决 => 看到最后的更新
我正在尝试使用std::function
,但看起来只是包含<functional>
不提供定义。我试图编译以下代码:
#include <functional>
std::function<int(int)> f = nullptr;
使用 c++11 作为编译选项:
% clang++ -c -std=c++11 t.cc
原因:
t.cc:3:6: error: no type named 'function' in namespace 'std'
std::function<int(int)> f = nullptr;
~~~~~^
t.cc:3:14: error: expected unqualified-id
std::function<int(int)> f = nullptr;
^
2 errors generated.
我错过了什么?我很了解 C++,但对 clang++/C++11 很陌生,因此我想我缺乏重要的知识。
我在 MacOS X 10.8 上使用 clang++。
更新 1
我在 cppreference.com 网站上尝试了一个示例,但它也不会编译。提供一些选项解决问题?
更新 2
用 cppreference.com 尝试了上面的示例clang++ -c -std=c++11 -stdlib=libc++11 x.cc
,编译器仍然说:
x.cc:1:10: fatal error: 'functional' file not found
#include <functional>
^
1 error generated.
功能在哪里?我想我应该给-stdlib=libc++11
或其他什么,但它也不起作用:
clang: error: invalid library name in argument '-stdlib=libc++11'
我怎样才能找到参数列表-stdlib
?(注意:在手册页中,只有可用选项是libc++
并且libstdc++
它们都不起作用)
还是功能不起作用?