Szablon traits c++ Pomoc w zrozumieniu

0

Bardzo bym prosił o sprawdzenie czy moje rozwiązania do tego zadania są właściwe.
Jeżeli nie to proszę o wskazówki co należy dodać.
Czytelniejszą formę dodaję w załącznikuKOD.PNG

  1. W bibliotece klas i szablonów struktur danych zdefiniowano szablony pewnych algorytmów. Aby wyspecjalizować algorytmy posłużono się techniką opartą o szablon cech charakterystycznych (ang. traits). Cechy te muszą być osobno specyfikowane dla każdej klasy struktury danych w bibliotece, a następnie powinny być udostępnione do bezpośredniego użycia. Uzupełnić w liniach 1, 13, 17, 18, 22, 24 i 25 deklarację, specjalizację oraz konkretyzację szablonu cech, tak aby najlepiej spełnić te wymagania projektowe.
  1. .............. MOJA ODP. template <typename T>
  2. struct cechy {
  3. /***/
  4. };
  5. class tablica {
  6. /***/
  7. };
  8. template <typename T=int> class lista {
  9. /***/
  10. };
  11. .............. MOJA ODP. template < >
  12. struct cechy< tablica > {
  13. /***/
  14. };
  15. .............. template <typename T>
    18 struct cechy< lista........ MOJA ODP. <T> > {
  16. /***/
  17. };

22............... MOJA ODP. template <>
23.struct cechy< tablica >;
24...............MOJA ODP. template <Typename T>
25. struct cechy< lista...........MOJA ODP. <T> >;

2

Bez cudzysłowów,


template <typename T=int>
struct cechy{}; //costam

17-18: zależy, ale chyba

template <typename T>
struct cechy <lista <T>> {//costam};

20 i dalej Ci się formatowanie rozjechało i nie wiem o co Ci chodzi. Pytanie pomocnicze: dlaczego traity listy masz 2x?

EDIT: to co masz na obrazku zdaje się być ok, do 20 przynajmniej ;P

0

mam jeszcze pytanie czy deklaracje w liniach 13 /22 oraz 17/24 powinny być takie same?
W poleceniu jest uzupełnić deklarację, specjalizację oraz konkretyzację, a ja praktycznie wklejam to samo

1

Nie znam dobrze polskiej nomenklatury ;P Konkretyzacja to jest -zakładam - "explicit instantiation"? Jeśli tak:
To wtedy do 20 linijki masz dobrze,
potem:

template struct cechy<tablica>;
template struct cechy<lista<int>>;
0

@alagner: dzięki

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