私はClangでg ++でうまくコンパイルするC++ライブラリをコンパイルしようとしています。なぜclangはBoost for STLを混乱させますか?
しかし何らかの理由で私はどこでもエラーが発生します。私はstlコンテナを使用しています。エラーメッセージは、私が私とは思わないブーストセットを使用しようとしていると思っていると示唆しているようです。
boost
としてstd
と私は何らかの形で別名を付けましたが、実際にはusing
というキーワードを使用していません。
/Users/zennatavares/repos/cliques/cliques/../cliques/structures/disjointset.h:140:8: error: too few template arguments for class template 'set'
std::set<int> visited_parents_;
^
/usr/local/include/boost/detail/container_fwd.hpp:90:64: note: template is declared here
template <class Key, class Compare, class Allocator> class set;
それでなぜusingステートメントを使って名前空間全体をコードに持ってこないのですか? usingステートメントを削除し、代わりに完全名 "std :: set"を使用してください。 –
@MooingDuck:Um、what 'using'ステートメント?彼はコード内で明示的に 'std :: set'として修飾しています(少なくとも、clangが繰り返す行)。 –
[短く、自己完結型、正しい(コンパイル可能な)、例](http://sscce.org/)と評価されています。あなたはあなたが気づいていないどこかで 'using'ステートメントを持っているかもしれません。 –