Szablon klasy, wyjaśnienie składni

0
 
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 ?

0

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ć ;)

2

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

0

dzieki ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1