From -602572370081550638
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: f78e5,fbd36da46c3cc7a0
X-Google-Attributes: gidf78e5,public
From: James Kuyper <kuyper@wizard.net>
Subject: Re: Discussion: type_info
Date: 1999/12/24
Message-ID: <386219A9.3448CB16@wizard.net>#1/1
X-Deja-AN: 564460139
X-NNTP-Posting-Host: 209.8.153.43
Content-Transfer-Encoding: 7bit
Approved: stephen.clamage@sun.com (comp.std.c++)
References: <82gmer$gqm$1@nnrp1.deja.com> <memo.19991206234642.50639A@btinternet.com> <384c8866.77375470@news.internetconnect.net> <82lv69$atk$1@nnrp1.deja.com> <3855bd24.78125498@news.internetconnect.net> <m3bt7qf9fs.fsf@grady.MtDiablo.com> <83kjmg$cru$1@nnrp1.deja.com> <385E94F0.7157AEA4@wizard.net> <83ru98$ifi$1@nnrp1.deja.com>
X-Accept-Language: en,de,es,ru
X-UID: 0000000001
X-Status: $$$T
Content-Type: text/plain; charset=us-ascii
X-Trace: tw11.nn.bcandid.com 945953178 209.8.153.43 (Thu, 23 Dec 1999 05:46:18 MST)
Organization: bCandid - Powering the world's discussions - http://bCandid.com
Mime-Version: 1.0
NNTP-Posting-Date: Thu, 23 Dec 1999 05:46:18 MST
Newsgroups: comp.std.c++
Originator: clamage@taumet


Gene Bushuyev wrote:
....
> Ok, ok. You can call a thing that links compiled translation units a
> linker. Though it's hardly a linker that we used to. In order to
> support exported templates this linker still has to be a compiler.
> My point was just to note that compiler/linker distinction is
> dissapearing due to overlapping of their functions.

In terms of actual functionality some overlap has occurred, but
conceptually the 'export' keyword has actually helped return us to the
status quo before templates were introduced. It allows you to separate
the declaration and implementation of templated classes in essentially
the same way that you could always separate the declaration and
implementation of ordinary classes. This means that you can hide the
details of the implementation from the users of your code, reducing
their temptation to write code that's dependent on those details.
Furthermore, it means that their translation units needn't be
re-compiled, but only re-linked, if you change the exported definition.
Separate compilation is the big advantage; in the case of exported
templates, that advantage has been retained at the price of moving into
the linker some of the functionality that used to belong only in the
compiler.


[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://reality.sgi.com/austern_mti/std-c++/faq.html              ]




