Article View: pl.comp.objects
Article #15206Re: Wyjątki w konstruktorze
From: Darek Kubiczek
Date: Mon, 28 Aug 2006 10:00
Date: Mon, 28 Aug 2006 10:00
42 lines
2575 bytes
2575 bytes
Marcin 'Qrczak' Kowalczyk napisał(a): > "Darek Kubiczek" <darek_kubiczek@wp.pl> writes: > > >> > int priority(); > >> > void processWidget(auto_ptr<Widget> pw, int priority); > >> > ... > >> > processWidget(auto_ptr<Widget>(new Widget), priority()); > > > Niestety, jest to prawda. > > > > http://www.gotw.ca/gotw/056.htm > > To jest inna sytuacja. Warunkiem koniecznym, żeby zaszedł opisany tam > problem, jest żeby istniał argument, którego obliczenie może rzucić > wyjątek, priority() > i *inny* argument, któremu wycieka pamięć, jeśli jego new Widget > obliczenie i związanie go z parametrem zostanie przerwane. Tutaj on > nie zachodzi. Zachodzi. Przy ponizszej kolejnosci ewaluacji argumentow 1. new Widget 2. priority() 3. auto_ptr<Widget> (...) jesli priority() rzuci wyjatek mamy wyciek. Ostatnia linijka punktu 1 z podanego wczesniej linka jest wlasnie rozwiazaniem zagadki. Temat watku moze byc nieco mylacy przy rozwiazywaniu zagadki - tu nie chodzi o sytuacje w ktorej wyjatek poleci z konstruktora Widget. D.
Technical Details
Message-ID:
<1156759255.046151.193350@h48g2000cwc.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!h48g2000cwc.googlegroups.com!not-for-mailReferences:
<1156145142.606030.39100@m73g2000cwd.googlegroups.com> <ece4m4$88j$1@inews.gazeta.pl> <ecesvp$k3h$3@kujawiak.man.lodz.pl> <eci6qt$h30$1@inews.gazeta.pl> <eckrc9$spp$1@inews.gazeta.pl> <1156493859.605197.91940@75g2000cwc.googlegroups.com> <87mz9t3ssq.fsf@qrnik.zagroda>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!h48g2000cwc.googlegroups.com!not-for-mail From: "Darek Kubiczek" <darek_kubiczek@wp.pl> Newsgroups: pl.comp.objects Subject: Re: Wyjątki w konstruktorze Date: 28 Aug 2006 03:00:55 -0700 Organization: http://groups.google.com Lines: 44 Message-ID: <1156759255.046151.193350@h48g2000cwc.googlegroups.com> References: <1156145142.606030.39100@m73g2000cwd.googlegroups.com> <ece4m4$88j$1@inews.gazeta.pl> <ecesvp$k3h$3@kujawiak.man.lodz.pl> <eci6qt$h30$1@inews.gazeta.pl> <eckrc9$spp$1@inews.gazeta.pl> <1156493859.605197.91940@75g2000cwc.googlegroups.com> <87mz9t3ssq.fsf@qrnik.zagroda> NNTP-Posting-Host: 12.47.224.7 Mime-Version: 1.0 X-Trace: posting.google.com 1156759260 11515 127.0.0.1 (28 Aug 2006 10:01:00 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 28 Aug 2006 10:01:00 +0000 (UTC) In-Reply-To: <87mz9t3ssq.fsf@qrnik.zagroda> User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; DGD (AutoProxy4); .NET CLR 1.1.4322; .NET CLR 2.0.50727),gzip(gfe),gzip(gfe) X-HTTP-Via: 1.0 inetproxy13 (NetCache NetApp/6.0.3D1) Complaints-To: groups-abuse@google.com Injection-Info: h48g2000cwc.googlegroups.com; posting-host=12.47.224.7; posting-account=faiyAQ0AAADb-8q_Mi-T3e0kux5tt9kt Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit