YouCompleteMe - Vim 用のコード オートコンプリートは、Clang (および libtinfo.so.5 ?) を使用して C 言語をサポートします。それは素晴らしい仕事をしますが、C ++に「将来の」ライブラリを含めると失敗します。std::packaged_task、std::promise、std::future が名前空間 std のメンバーではないというエラーが表示されます。問題は、「将来」ライブラリによって提供される将来、約束、およびその他のオブジェクトを含むg ++またはclang ++でプログラムをコンパイルできることです。では、なぜ YCM はそのライブラリのメンバー オブジェクトを識別できないのでしょうか?
Visual Studio Code - コーディングのための美しいプラットフォーム。2 つの拡張機能を追加しました。Clang 拡張機能と、C/C++ 拡張機能の完全なサポートです。うまく機能しますが、「将来の」ライブラリを特定できません。VSC は将来のライブラリを含めてもエラーにはなりません。そのライブラリによって提供されるオブジェクト (std::future、std::promise など) を作成しようとするとエラーになります。なぜ VS でさえそのメンバーの識別に失敗するのか図書館?
問題は、このライブラリで何が起こっているのか、そのライブラリのオブジェクトを作成する時点で 2 つのプラットフォームが失敗するのはなぜですか?
私の考え:
1) Clang に問題はありません - std::future と std::promise を含むプログラムをコンパイルできます。
2)「将来の」ライブラリ自体に問題はありません。それを正常にインクルードしてコードをコンパイルできます。
3) libtinfo.so.5 のせいかもしれません。デフォルトでは、新しいものがあります:libtinfo.so.6(私はfedora 24を使用しています); そのため、手動で libtinfo.so.5 を lib64 ディレクトリに追加しました。
4) この問題について、インターネット上で同様のものを見つけることができません。それで、それは非常に具体的な問題かもしれませんか?
編集: C/C++用のEclipse IDEでも動作しないようです