-
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
- 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
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-05-26 O co chodzi?
- 2024-05-26 PJ autobus-tramwaj
- 2024-05-26 Renault Trafic i lampka z czerwonym STOP
- 2024-05-26 cena pięciocyfrowa
- 2024-05-26 Re: Jak dobra KE "okrada" złą Rosję "dla Ukrainy"
- 2024-05-25 supercap
- 2024-05-25 Sulzbach => Technischer Rollouter (d/m/w) <=
- 2024-05-25 Warszawa => Senior Account Manager <=
- 2024-05-25 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-25 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-25 Warszawa => Interactive/Experience Designer <=
- 2024-05-25 Warszawa => Key Account Manager <=
- 2024-05-25 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-25 Warszawa => Key Account Manager <=
- 2024-05-25 Re: znów ten wrocław