string klasse mit policies
-
ich will eine string klasse schreiben die stark policiy basiert ist.
denn ich will nicht mehr 10 verschiedene string klassen haben, sondern lieber alles in einer.
doch wie teile ich die policies auf?
was haltet ihr davon:
Type-Policy -> mapped den char-typen auf den intern verwendeten typen (zB koennte es ja statt char* auch list<char> oder so sein.
speichert auch die tatsaechlichen variablen.Copy-Policy -> nimmt Allocator als template parameter und muss dafuer spezialisiert sein.
geboten wird uA Copy::copy(), Copy::swap(), etc. eben alles was mit kopieren zu tun hat.CopyStrategy-Polciy -> zB COW (mehr faellt mir nicht ein)
nimmt Copy als parameter.
in jeder non const methode wird dann immer CopyStrategy::Change() aufegrufen, welches je nach dem den string kopiert oder nix macht.Allocator-Policy -> nimmt Type::value_type als template parameter
ein typischer allocator halt.Compare-Policy -> nimmt Type::value_type als template parameter
bietet less, greater, equal,... andoch mir gefaellt es nicht, dass die policies alle von einander abhaengig sind.
so kann ich zB ein Type-Policy mit value_type==list<char> nicht verwenden, ohne Copy dafuer zu spezialisieren...doch wie geht es anders?
Type koennte, je nach Type ein bestimmtes Copy aufrufen (Copy::raw_mem_copy,...)
doch dann muss Type ja Copy als template param bekommen...ich sitze jetzt daran schon ueber eine stunde - und mir faellt nix vernuenftiges ein.
kann es sein, dass es bei strings einfach nicht geht, oder bin ich nur zu bloed dafuer?
wie wuerdet ihr die policies aufteilen?
-
ich will eine string klasse schreiben die stark policiy basiert ist.
Alexandrescus:
A Policy-Based basic_string Implementation hast du aber schon gelesen, oder?
-
HumeSikkins schrieb:
ich will eine string klasse schreiben die stark policiy basiert ist.
Alexandrescus:
A Policy-Based basic_string Implementation hast du aber schon gelesen, oder?*grml*
natuerlich nicht...danke!