私は現在、boostライブラリの使い方を勉強しようとしており、boost :: intrusive :: splay_set(またはその問題ではsplaytree)の問題を見つけました。boost :: intrusive :: splay_setのポインタ
カテゴリクラス(カテゴリ*)へのポインタを保持するスプレイツリーがあるとします。私は次のように書こうとしています
splay_set<Category*, compare<std::greater<Category*>>> CategoriesSplay
悲しいかな、うまくいきません。私はそれが100を超えているので、Visual Studioがコンパイルプロセスを終了しているので、生成しているエラーを書きません。
は、その後、私は私のCategoryクラスは
class Category : public splay_set_base_hook<link_mode<auto_unlink>, Category*>
ここでも、ここでは運に拡張する必要があるクラスを変更しようとしました。 2番目のコードのCategory *をvoid_pointer(Category)に変更することもできません。悲しいことに、ドキュメントを増強することは、侵入型スプレイセットへのポインタを追加する助けにはならない。
誰かに私の問題の解決策がありますか?前もって感謝します。
エラーは何ですか? (少なくとも最初の数人です。) – Adrian
実際には、どのように拡張クラステンプレートを定義するかによって異なります。上記のように定義されている場合、私のエラーは次のようになります: 'エラーC2825: '次へ':' :: 'エラーが続くときにクラスまたは名前空間でなければなりません。C2903:' pack ':シンボルはクラステンプレートでも関数テンプレートでもない 'しかし、それが残っていればポインタエラーを定義するのは 'エラーC2825です: 'T':' :: ''エラーが続くときにクラスまたは名前空間でなければなりませんC2039:' default_splay_set_hook ':'グローバル名前空間 'のメンバーではありません' –