Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Jovanna avatar Jovanna 186 Точки

вложен компаратор без темплейти - възможно ли е?

Здравейте,

Възможно ли е да се работи директно с типовете, без темплейти? Нещо не ми позволява подобен запис, защо?

std::multiset<Vector, ReverseComparer<Vector, VectorLengthComparer> > vectors;

class VectorLengthComparer {
public:
    bool operator()(const Vector& v1, const Vector& v2) {
        return v1.getLength() < v2.getLength();   
    }
};

//template <typename T, typename Comparator>
class ReverseComparer {
private:
    VectorLengthComparer comp;
public:
    bool operator()(const Vector& v1, const Vector& v2) {
        bool compareResult = this->comp(v1, v2);
        return !compareResult;
    }
};

Поздрави!

Тагове:
0
C++ Programming
georgi.stef.georgiev avatar georgi.stef.georgiev 921 Точки
Best Answer

Здравей,

Не ти позволява, защото в първия ред се опитваш да подадеш темплейтни аргументи на клас, който няма такива.

ReverseComparer си му закоментирала template-ните аргументи, съответно не можеш да напишеш ReverseComparer<...>, а трябва да напишеш просто ReverseComparer.

Също както ако имаш void f() не можеш да я викаш с f(42);, а трябва да я извикаш с f();

Поздрави,

Жоро

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.