-
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
- 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
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=