Błąd #1450
wykomentowany kod w match_variants?
Status: | Zamknięty | Start date: | 26 Apr 2011 | |
---|---|---|---|---|
Priority: | Normalny | Due date: | ||
Assignee: | Paweł Kędzia | % Done: | 100% | |
Category: | - | |||
Target version: | - |
Description
Nie jestem pewien, o co chodzi, stąd to issue - w regule match_variants jest kod variants->push_back(variant), który jednakowoż jest wykomentowany, więc siłą rzeczy nie działa. Dlaczego zatem jest wykomentowany, czy jest tam coś niedokończone z tymi TODO? Bo tak jak jest, to longest nie parsuje wszystkich sekcji variant tak jak powinien. Na razie zajmuję się czym innym, także nie miałem czasu bliżej się temu przyjrzeć, tylko tak zauważyłem
History
#1 Updated by Paweł Kędzia over 12 years ago
- Assignee changed from Paweł Kędzia to Adam Wardyński
TODO przy match_variants dotyczy "wkładania" wariantów do wektora wariantów. Zarówno operator OneOf jak i Longest przyjmują w konstruktorze wskaźnik do wektora ConjConditions. Problem polega na tym, że reguła match_condition zwraca u nas wskaźnik do ConjConditions, zatem budowanie wektora obiektów ConjConditions wymusza wyłuskanie z pointera wartości ConjConditions, a przy wkładaniu do wektora tworzona jest kopia (?). To nie byłoby problemem, gdyby nie fakt, że ConjConditions dziedziczy po MatchCondition, MatchCondition po Expression, a Expression po boost::noncopyable. Czy w takim wypadku nie byłoby lepiej aby OneOf oraz Longest w konstruktorze przyjmowały wskaźnik do wektora wskaźników ConjCOnditions?
#2 Updated by Adam Wardyński over 12 years ago
- Status changed from Nowy to Przypisany
- Assignee changed from Adam Wardyński to Paweł Kędzia
rozumiem, że chodzi o zamianę std::vector<ConjConditions> na std::vector<boost::shared_ptr<ConjConditions> >
Ma to jak najbardziej sens! Jeśli już masz to zrobione, to śmiało git push =) (Adam R. wspominał, że to zmieniłeś, ale jeśli nie, to przepisz zadanie z powrotem do mnie i się tym zajmę).
Na marginesie, nie jestem pewien, czy w boost czasem nie ma dedykowanej strukturki do trzymania shared_ptr, jest coś jak shared_array chyba? ale nie wiem, czy to to.. Bo użycie czegoś takiego pewnie byłoby ładniejsze niż std::vector do boost::shared_ptr. No, ale to tak na marginesie ew. do zajrzenia później.
#3 Updated by Paweł Kędzia over 12 years ago
- Status changed from Przypisany to Zamknięty
- % Done changed from 0 to 100
Skoro tak, to już pushnąłem (fb6645c2d1a9455c9c5686e964beafec60c1b8a0) ;)