nixp.ru v3.0

30 мая 2017,
вторник,
00:02:52 MSK

DevOps с компанией «Флант»
Longobard написал 19 февраля 2005 года в 21:42 (357 просмотров) Ведет себя как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.

Есть шаблон класса:

template < class T, int SortT = SORT_NONE >

и Все бы хорошо, но как мне обьявлять перегруженные операторы? Дело в том чо обьявление

template < class T, int SortT  >
LongList < T, SortT  > & LongList < T, SortT  >::operator += ( T el )

Приведет к тому, что этот оператор будет работать только с двумя обьектами, у которых SortT равны. Если для разных — то получаем ошибку по типу этой:

«TestProg.cpp»: TestProg.cpp error: no match for 'operator-=' in 'testlist -= testlist2\′ at line 39

«longlist.h»: longlist.h note: candidates are: LongList& LongList::operator-=(LongList) [with T = int, int SortT = 1] at line 407

«longlist.h»: longlist.h note: LongList& LongList::operator-=(T) [with T = int, int SortT = 1] at line 389

тут в одном обьекте у меня при сздании шаблона указан SortT = 1, в другом = 0. Как мне обьявить оператор так, чтобы он работал для шаблонов с любым SortT?