Article View: pl.comp.objects
Article #16287Re: Typ należący do parametru template'a (czyli STL w parametrze)
From: Adam Karpierz
Date: Wed, 11 Apr 2007 19:47
Date: Wed, 11 Apr 2007 19:47
62 lines
3839 bytes
3839 bytes
Użytkownik "ethouris" <ethouris@gmail.com> napisał: >> Czy Pan uwaza ze mozna postawic znak rownosci pomiedzy >> "trzepiacymi konkretyzacjami" czy trzeba czy nie szablonami z C++ >> a rozwiazaniami szablonow w Javie czy C# ktore.. tak naprawde >> w ogole szablonami nie sa (choc moze mylic skladnia podobna do C++) , >> ale parametryzowalnymi obiektowymi kontenerami ?. > Szablonami są jak najbardziej. > Przecież z punktu widzenia programisty piszącego kod istotne jest > tylko to, co jest w źródłach programu i co jak działa. Fakt, że > wszystkie parametry szablonu są wewnętrznie magicznie przerabiane na > Object to nieistotny szczegół. Sektor czy Ty czujesz ze dzieki takiemu podejsciu wystarcza w Javie _jedna_ (jak to w C++ sie nazywa) "specjalizacja" szablonu obslugujaca wszystkie typu wywodzace sie od klasy bazowej ? Czy ty czujesz juz ze taki "szablon" mozna spokojnie skompilowac, umiescic w bytecode a bedzie dobrze dzialal wlasnie dzieki podejsciu obiektowemu a nie "pieczatkowemu" jeno ?. No to mi powiedz dlaczego slawetne export w C++ (ktore ma niby robic to samo) tak sie nie podaje implementacji przez tyle lat ? Czy ty rozumiesz juz, ze to co jest w Javie to jest typowy przyklad generyka polimorficznego parametryzowanego typem ? (sorry za nowomowe ale jakos tak mi sie powiedzialo wyjatkowo), i dzieki temu podlega kontroli typow w taki sposob jak i kazda inna rzecz, a to co jest w C++ to plaskie "trzaskanie specjalizacji" bez opameitanei i dopiero linker sobie z tym radzi (bo zrobiono kolejny wyjatek dla linkera ze gdy napotka natrzaskane takie same specjalizacje w roznych modulach to w przeciwienstwie do inych externali gdzie daje duplicate error tu ma wybrac jedna. >> Czy tu _gdziekolwiek_ nastepuje dedukcja typu parametru >> przez szablon ? Szablon jest glupi jak but. > Owszem. Następuje w operatorze ++, używanym wewnątrz find_if, który > wybiera odpowiednią specjalizacje opartą o typ obiektu podanego jako > ls.begin() i ls.end(). Sektorku kochany , racz zauwazyc ze operator ++ w ogole nie dziala na typie ale na _iteratorze_ i duze g.. wie jaki jest typ obiektu kontenera. On zna tylko typ iteratora (podanego mu explicite przez kompilator) i wie ze na tymze ma wykonac metode operator ++ Potem, wie tylko ze ma wykonac metode operator * a potem funkcje operatorowa operator == Tyle. W calej find_if (czy innych tego rodzaju rozwizazaniach) typ _samego obiektu_ nie jest nigdzie potrzebny. Stad te Wasze bajki o "dedukcji typu" przez yntelygentny szablon to wlasnie miedzy... bajki wlozyc. AK
Technical Details
Message-ID:
<evje25$sbt$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<slrnf1kjcu.ave.lrem@lrem.maxnet><evdqq6$qrs$3@news.onet.pl> <desk13psu2rvekht584uoirc0djahrk1dv@4ax.com> <87irc5fnin.fsf@hector.domek> <1176232119.821172.37680@n76g2000hsh.googlegroups.com> <evh5i9$qho$1@inews.gazeta.pl> <1176316203.969378.31720@d57g2000hsg.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Adam Karpierz" <karpierz@_NOSPAM_python.pl> Newsgroups: pl.comp.objects Subject: Re: Typ należący do parametru template'a (czyli STL w parametrze) Date: Wed, 11 Apr 2007 21:47:38 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 64 Message-ID: <evje25$sbt$1@inews.gazeta.pl> References: <slrnf1kjcu.ave.lrem@lrem.maxnet><evdqq6$qrs$3@news.onet.pl> <desk13psu2rvekht584uoirc0djahrk1dv@4ax.com> <87irc5fnin.fsf@hector.domek> <1176232119.821172.37680@n76g2000hsh.googlegroups.com> <evh5i9$qho$1@inews.gazeta.pl> <1176316203.969378.31720@d57g2000hsg.googlegroups.com> NNTP-Posting-Host: dns.welnowiec.net X-Trace: inews.gazeta.pl 1176320901 29053 83.143.96.1 (11 Apr 2007 19:48:21 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Wed, 11 Apr 2007 19:48:21 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028 X-Priority: 3 X-RFC2646: Format=Flowed; Original X-Newsreader: Microsoft Outlook Express 6.00.2900.3028 X-User: karpierz X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit