Ktos tego w pracy uzywa? Pytam, bo odswiezam sobie C++ i chce sobie priorytety odswiezania dobrze poustawiac.
Dzieki
Ja osobiście nie widzę sensu w TMP poza tworzeniem bibliotek. Wystarczy spojrzeć boosta, używa się go całkiem przyjemnie ale same źródła są ciężkie do czytania, a tworzyli go jedni z najlepszych speców C++ na świecie. Do tworzenia logiki apki wolę inne zabawki. Poza tym TMP od początku do końca rozumie chyba tylko jeden człowiek na świecie.
@mwl4 często używana ale chyba tylko w domach hobbystycznie. Widziałem sporo komercyjnego kodu małych i dużych vendorów i ciężko tam znaleźć ślad jakichkolwiek szablonów.
edit
A źródła STLa to dopiero są posrane.
Zależy o jakim TMP rozmawiamy.
TMP w rodzaju "policz mi w czasie kompilacji" (np. n-tą liczbę pierwszą) to raczej bardzo rzadko.
Programowanie generyczne w rodzaju "implementacja klasy dla 5-tego elementu podanego typu wyliczeniowego" - tylko w bibliotekach pomocnicznych (struktury danych).
Programowanie szablonowe typu funkcja round dla dowolnego typu zmienno-przecinkowego: bardzo często, w zasadzie nie wyobrażam sobie projektu bez tego.
Dzieki wszystkim za odpowiedzi.
Nie wiem czy wyrazilem sie odpowiednio, i czy przypadkiem nie wprowadzilem niechcaco w blad. Nie chodzi mi o to czy uzywa sie szablonow typu STL itd, tzn, ja doskonale sobie zdaje sprawe z tego ze cos takiego bedzie uzywane w pracy na porzadku dziennym:
find_if(vec.cbegin(), vec.cend(),[](auto v){return v < 10;});
Mi raczej chodzilo czy u was w pracy jestescie czesto pytani zeby napisac cos takiego:
template <typename LST> struct Length {
typedef typename LST::Tail Tail;
static const unsigned int tail_length = Length< Tail >::result;
static const unsigned int result = 1 + tail_length;
};
template <> struct Length<NIL> {
static const unsigned int result = 0;
};
Wiec? ;) Uzywacie takich cudow w pracy?
Dzieki
Jak dla mnie, wypowiedziałeś się jasno. Metaprogramowanie czyli np. praca z typami i funkcje operujące na typach.
Osobiście używam (kilka zastosowań) do:
I wiele innych. Nie ma co straszyć szablonami. Wystarczy się z nimi zapoznać i polubić :-)
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
Jerylee