問題タブ [class-template]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - CMake リンカ: ライブラリがリンクされていても未定義の参照
クラスプロジェクトに CMake (CLion) を使用しています。次の解決策を試しましたが、うまくいきませんでした: 1、2、3。
クラス プロジェクト用に HeapSort クラスを作成しましたが、それを使用して文字列のベクトル (辞書) を並べ替える必要があります。このディクショナリに HeapSort クラスのインスタンスを次のように作成します。
heapSort()
クラスが次のように定義されているコンストラクターと関数への未定義の参照を取得し続けます(heapSort()
同様です):
ヒープ.cpp
Heap.h
CMakeLists.txt
現在、すべてのファイルを 1 つのフォルダーにまとめています。CMakeLists.txt
この時点で何を追加する必要がありますか? 私はadd_library/target_link_library
(異なる順序で)試してinclude_directories
みました. ディレクトリも再編成する必要がありますか?
編集: Heap.cpp と Heap.h を追加
c++ - 派生クラスでテンプレートの基本メソッドをオーバーライドしますか?
以下のような基本クラスがあるとします。
次に、Derived
以下のようにクラスを作成し、do_something()
メソッドをオーバーライドします。
クラス テンプレートでは仮想化が機能しないことはわかっており、メソッドの実装を隠しているだけです。しかし、一連の派生クラスと基本クラスをベクトルに格納したい (型消去やポリモーフィズムを使用したくない)、
私の質問は、クラスからベースクラスへのクラスがベースクラスを与えることstatic_cast
をDerived
考えるとdo_something
、それぞれがクラスの実装を持っている間にそれらをベースクラスとして保存できる方法はありますdo_something()
か?
c++ - C++17 クラス テンプレート推論 const-ness
新しい c++17 クラス テンプレート推定を使用しようとしていますが、const を適用するまではすべて正常に動作しているようです。これは私が直面している問題の小さな例です:
const X がその型を推測しているとき、const-ness は実行されないようです。私はこれが可能であることを知っています:
ただし、これにより、すべての推定型が const X になります。
誰かが情報や助けを持っているなら、それは大歓迎です!
編集 私はGCC-7.1.0を使用しています