Judge Assignment 05 - Task 5 - Sorting друг въпрос
Здравейте,
Имам един такъв въпрос. Това, което е като код в SortingMain-a e:
1) typedef std::set<Song,Reverse<Song, LessThan<Song> > > Set;
Аз обаче съм го подкарал да върви по следния начин като промених main-a
2) typedef std::set<Song, Reverse<Song,Song>> Set;
Това го напрaвих като на темплейтнатия Reverse клас направих специализация за Song. T.e. Reverse-a работи (за всичко int, string, Song) без избщо да има нужда от LessThan,. Сега обаче за да го приеме judge трябва по-някакъв начин да променя специализацията и вместо нея да имам LessThan темплейтнат клас. Изобщо не e проблем да се на направи LessThan класа. Обаче нещо не намирам начин да го подам на Reverse-a. Не съм сигурен дали въпроса е на синтаксис или принципен :(, ама да го подкарам от синтаксиса. Някакви идеи?
Здравей,
Ами не е точно така. Може би не успявам да обясня добре. Всъщност това, което прави LessThan се прави, ама не като LessThan, а като specialization на Reverse за Song. Разбира се това не работи с main-а(поне не без да пипнеш main-a). Мисля, че ми е ясно какво и защо трябва да прави LessThan в Reverse, но нещо чисто синтактично не съм намерил начин да кажа на Reverse да използва LessThan.
Ето за това говоря:
Error C3200 'LessThan<Song>': invalid template argument for template parameter 'Comparator', expected a class template
Error C3203 'Reverse': unspecialized class template can't be used as a template argument for template parameter '_Pr', expected a real type