template <class T, class C = std::less<T> >
class SortedVector {
cos tam wkalsie
};
public:
Pytanie :
Rozumiem podstawy szablonów, ale ten zapis z tym C = std::less<T> nie jest dla mnie jasny, mogę prosić kogoś o krótkie wyjaśnienie ?
template <class T, class C = std::less<T> >
class SortedVector {
cos tam wkalsie
};
public:
Pytanie :
Rozumiem podstawy szablonów, ale ten zapis z tym C = std::less<T> nie jest dla mnie jasny, mogę prosić kogoś o krótkie wyjaśnienie ?
http://www.cplusplus.com/reference/functional/less/
Mówi to tyle że drugim parametrem domyślnie jest less<T>
czyli funktor który potrafi porównywać obiekty T
i zwracac informację o tym który jest mniejszy.
edit: poprawione żeby nie kłamać ;)
To jest po prostu wartość domyślna, działa to analogicznie do wartości domyślnych w funkcjach. W ogóle o szablonach możesz myśleć jak o funkcjach generujących konkretne klasy/funkcje/zmienne¹
Dzięki temu zapisowi możesz użyć zapisu SortedVector<int>
, co jest równoznaczne SortedVector<int,std::less<int>>
¹ zmienne w C++14
dzieki ;)