Article View: pl.comp.objects
Article #16191Re: Typ należący do parametru template'a (czyli STL w parametrze)
From: Marcin 'Qrczak' Kowalczyk
Date: Tue, 10 Apr 2007 22:50
Date: Tue, 10 Apr 2007 22:50
39 lines
3247 bytes
3247 bytes
Dnia 10-04-2007, wto o godzinie 11:46 -0500, A.L. napisał(a):
> Czy moglby Pan przedstawic ZASADNICE roznice miedzy "parametryzowaniem
> typu kolekcji" przy pomocy templates i M4, to znaczy przedstawic
> zasadnicze rozneice meidzy funkcjonalnosia templates i M4 w tym
> kontekscie i TYLKO tym?
Szablon może wydedukować typ na podstawie wyrażenia zależnego od tego
typu, a następnie użyć kodu parametryzowanego tym typem. Zewnętrzny
generator makr musi mieć ten typ podany jawnie. Na przykład można
wydedukować typ elementów kolekcji z wyrażenia opisującego iterator
po tej kolekcji, żeby potem użyć odpowiedniego dla tego typu operatora
przypisania.
Konkretyzacje szablonów są zbierane ze wszystkich jednostek kompilacji.
Jeśli dana konkretyzacja pojawi się kilka razy, to jej wystąpienia są
scalane przez linker. Przy generowaniu konkretyzacji ręcznie programista
musi zapewnić, że każda użyta konkretyzacja pojawi się raz i tylko raz,
co jest trudne do pogodzenia z modularnością.
Szablon pozwala wybrać implementację operacji w zależności od cech typu,
jakim ta operacja jest parametryzowana (te cechy są zapisane w tzw.
traits, które są specjalizowane poszczególnymi typami albo schematami
typów).
> Bylbym rozneiz wdzieczny za rozwineicie tematu w kwestii "Java 1.4",
> to znaczy rozwineicie mysli "to co sie stosowalo w javei 1.4" i
> konkretnie co sie w owej wersji javy stosowalo?
Dany obiekt kolekcji w Javie 1.4 (poza tablicami) ma typ niezależny od
typu elementów, nawet jeśli zawiera tylko elementy konkretnego typu.
Obiekt odczytany z kolekcji ma z reguły statyczny typ Object, który
dopiero należy zrzutować na właściwy typ elementów danej kolekcji,
żeby wykonać na nim operację zależną od tego typu.
--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
Technical Details
Message-ID:
<1176245435.15624.58.camel@qrnik>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<slrnf1kjcu.ave.lrem@lrem.maxnet> <evdlhb$f4p$1@inews.gazeta.pl> <evdqq6$qrs$3@news.onet.pl> <desk13psu2rvekht584uoirc0djahrk1dv@4ax.com> <87irc5fnin.fsf@hector.domek> <4u0l13p53mf3nous2u96ulgidcqovr6p5n@4ax.com> <eve28a$4kl$1@inews.gazeta.pl> <1176216124.9413.21.camel@qrnik> <tv8n131le3vcqu8o70bp60vjdgu4lm1u2l@4ax.com> <1176222180.9413.31.camel@qrnik> <qlfn131km9fnjkrbf9gnkktqs3nfuj23gl@4ax.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: Marcin 'Qrczak' Kowalczyk <qrczak@knm.org.pl> Newsgroups: pl.comp.objects Subject: Re: Typ należący do parametru template'a (czyli STL w parametrze) Date: Wed, 11 Apr 2007 00:50:35 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 54 Message-ID: <1176245435.15624.58.camel@qrnik> References: <slrnf1kjcu.ave.lrem@lrem.maxnet> <evdlhb$f4p$1@inews.gazeta.pl> <evdqq6$qrs$3@news.onet.pl> <desk13psu2rvekht584uoirc0djahrk1dv@4ax.com> <87irc5fnin.fsf@hector.domek> <4u0l13p53mf3nous2u96ulgidcqovr6p5n@4ax.com> <eve28a$4kl$1@inews.gazeta.pl> <1176216124.9413.21.camel@qrnik> <tv8n131le3vcqu8o70bp60vjdgu4lm1u2l@4ax.com> <1176222180.9413.31.camel@qrnik> <qlfn131km9fnjkrbf9gnkktqs3nfuj23gl@4ax.com> NNTP-Posting-Host: paf87.warszawa.sdi.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1176245688 19406 217.96.225.87 (10 Apr 2007 22:54:48 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Tue, 10 Apr 2007 22:54:48 +0000 (UTC) In-Reply-To: <qlfn131km9fnjkrbf9gnkktqs3nfuj23gl@4ax.com> X-Mailer: Evolution 2.8.3 PLD Linux Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit