-
Data: 2009-08-27 15:06:10
Temat: Re: szablony metod - deklaracja i definicja
Od: "Megas" <k...@o...eu> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "Tomasz Bywalec" <t...@p...dont.spam.me.o2.pl> napisał w
wiadomości news:h763r9$r70$1@nemesis.news.neostrada.pl...
>
> Ale osobiście wydaje mi się teraz, że niepotrzebnie brniemy
> w to rozwiązanie. Skoro chcesz aby w dll'ce znajdowało się
> tylko kilka konkretyzacji szablonu dla kilku typów, jednocześnie
> wyrzucając całą definicję szablonu z pliku nagłówkowego, to i tak
> ograniczasz użycie szablonu do właśnie tych kilku
> typów. W takim razie równie dobrze możesz, zamiast szablonu metody,
> zdefiniować kilka metod (o tej samej nazwie) dla kilku różnych typów
> argumentu.
Wiadomo, ze jesli sie nie da szablonem to bedzie trzeba isc na okolo -
myslalem, ze czegos ja nie kumam.
> Jeżeli, dla zdefiniowania tych metod, wygodnie Ci jest się
> posłużyć szablonem to możesz go trzymać, najwyżej
> pod inną nazwą, w całości w pliku .cpp, albo zostawić prywatną
> deklarację w .h, a definicję w .cpp. Dodatkowo, programista korzystający
> z tej dll'ki będzie od razu wiedział dla jakich typów zdefiniowana
> jest ta metoda (w każdym razie błąd nastąpi już na etapie kompilacji
> a nie linkowania).
Czyli, jesli dobrze rozumiem, nie da sie wykonac konkretyzacji szablonu
metody klasy widocznnej na zewnatrz, poza dll'eka? Soory, ale nie jestem
pewien czy do konca poprawnei zrozumiałem twoje intencje, bo moze Ci chodzi
o to, ze sie da tylko inaczej.
>
> Natomiast jeżeli chciałbyś jednak aby szablon działał dla różnych
> możliwych typów T to i tak definicja musi trafić do pliku nagłówkowego
> (w praktyce, na większości kompilatorów C++, nie da się tego uniknąć).
Tak, to nawet nie jest mozliwe w tym samym projekcie - to definicja musi byc
razem z deklaracja.
> Przypuszczam, że z pomocą "extern templates" (o ile są w Visual C++ ?)
> dałoby się ewentualnie skompilować konkretyzacje kilku typów i
> umieścić je w bibliotece .dll. Pytanie tylko czy naprawdę jest
> to gra warta świeczki ?
A jak to zrobic? Skoro juz tak daleko zabrnelismy to moze dalbys rade do
konca nam wytlumaczyc jak to zrobic - tak na przyszlosc...
Pozdrawiam
Marcin Olejarczyk
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-31 Szukam: czujnik ruchu z możliwością zaączenia na stałe
- 2024-12-31 Warszawa => Solution Architect (Java background) <=
- 2024-12-31 Warszawa => Starszy Konsultant AWS <=
- 2024-12-31 Warszawa => International Freight Forwarder <=
- 2024-12-31 Odpowiedzialność w spółce z oo
- 2024-12-31 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-31 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2024-12-31 Warszawa => Specjalista ds. bezpieczeństwa informacji i ciągłości
- 2024-12-31 8%
- 2024-12-31 Błonie => Administrator systemów <=
- 2024-12-31 Błonie => IT System Administrator <=
- 2024-12-31 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2024-12-31 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2024-12-31 Warszawa => Helpdesk - I linia wsparcia <=
- 2024-12-31 kabelek - kynar ?