Ich versuche derzeit zu lernen, wie boost-Bibliothek zu verwenden, und ich bin auf ein Problem mit boost :: intrusive :: splay_set (oder splaytree in dieser Angelegenheit) gestolpert.Zeiger in boost :: intrusive :: splay_set
Angenommen, ich möchte einen Splay-Tree haben, der die Zeiger auf die Category-Klasse (also Category *) hält. Ich versuche zu schreiben
splay_set<Category*, compare<std::greater<Category*>>> CategoriesSplay
Leider funktioniert es nicht. Ich werde keine Fehler schreiben, die generiert werden, da es 100 überschreitet und Visual Studio den Kompilierungsprozess beendet.
Dann habe ich versucht Klasse zu ändern, die meine Kategorie Klasse
class Category : public splay_set_base_hook<link_mode<auto_unlink>, Category*>
wieder erstrecken sollte, hier kein Glück. Das Ändern der Kategorie * im zweiten Code in void_pointer (Kategorie) funktioniert ebenfalls nicht. Leider hilft die Boost-Dokumentation nicht beim Hinzufügen von Zeigern zu aufdringlichen Splay-Sets.
Hat jemand eine Lösung für mein Problem? Danke im Voraus.
Was sind die Fehler? (Zumindest die ersten paar.) – Adrian
Es hängt tatsächlich davon ab, wie ich die Erweiterung Klassenvorlage definieren. Wenn es wie oben definiert ist, sind meine Fehler: 'Fehler C2825: 'Next': muss eine Klasse oder Namespace sein, gefolgt von '::'' 'Fehler C2903: 'pack': Symbol ist weder eine Klassenvorlage noch eine Funktionsvorlage Aber wenn es ohne Definition von Zeigerfehlern bleibt, ist 'Fehler C2825: 'T': muss eine Klasse oder ein Namespace sein, gefolgt von '::'' 'error C2039: 'default_play_set_hook': ist kein Mitglied von '' global namespace '' ' –