問題解決 => 最後にアップデートを参照
使用しようとしています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
ですか? (注: man ページでは、利用可能なオプションのみがlibc++
あり、libstdc++
両方とも機能しません)
または、機能が機能しないだけですか?