From: "Peter C. Chapin" <pchapin@sover.net>
Subject: Re: "Must instantiate controlled types at library level." Why?
Date: Thu, 13 May 2004 02:59:02 GMT
Date: 2004-05-13T02:59:02+00:00 [thread overview]
Message-ID: <Xns94E7E9D157B38pchapinsovernet@207.106.92.237> (raw)
In-Reply-To: 13392802.3gDeTK7ybb@linux1.krischik.com
Martin Krischik <krischik@users.sourceforge.net> wrote in
news:13392802.3gDeTK7ybb@linux1.krischik.com:
> It is not quite complete:
>
>> -----> cut <-----
>> #include <iostream>
>>
>> class X {
>> public:
>> virtual void f();
>> };
>>
>> void X::f()
>> {
>> std::cout << "I'm in X::f\n";
>> }
>>
>> X *ptr;
>>
>> void helper()
>> {
>
> auto int Z := 5;
>
>> class Y : public X {
>> public:
>> virtual void f() {
>> std::cout << "I'm in Y::f\n";
>
> std::cout << "and Z is " << Z << std:endl;
>
>> }
>> };
>>
>> ptr = new Y;
>> }
>>
>> int main()
>> {
>> helper();
>> ptr->f();
>> return 0;
>> }
Actually I tried this modification. In fact, the three C++ compilers I
used *do* produce a compile time error on this code. In particular the use
of an auto variable in the member function of a local class is
specifically illegal. The relevant language from the C++ standard is in
section section 9.8, paragraph 1: "Declarations in a local class can use
only type names, static variables, extern variables and functions, and
enumerators from the enclosing scope." The standard then goes on to give
an example showing that the use of an auto variable is illegal.
So it appears that contrary to my earlier assumption, C++ does in fact try
to do something sensible with this construction.
Peter
next prev parent reply other threads:[~2004-05-13 2:59 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-11 23:04 "Must instantiate controlled types at library level." Why? Peter C. Chapin
2004-05-12 1:03 ` Jeffrey Carter
2004-05-12 10:47 ` Peter C. Chapin
2004-05-12 11:25 ` Ludovic Brenta
2004-05-12 14:41 ` Martin Krischik
2004-05-13 2:20 ` Peter C. Chapin
2004-05-12 11:55 ` Martin Krischik
2004-05-13 2:59 ` Peter C. Chapin [this message]
2004-05-13 7:10 ` Martin Krischik
2004-05-13 10:36 ` Peter C. Chapin
2004-05-13 11:18 ` Martin Krischik
2004-05-13 22:27 ` Peter C. Chapin
2004-05-13 22:54 ` Freejack
2004-05-14 7:13 ` Martin Krischik
2004-05-14 13:50 ` Xenos
2004-05-14 17:27 ` Georg Bauhaus
2004-05-14 17:58 ` Xenos
2004-05-14 18:49 ` Martin Krischik
2004-05-14 19:40 ` Xenos
2004-05-14 22:47 ` Ludovic Brenta
2004-05-15 8:34 ` Martin Krischik
2004-05-16 2:55 ` Hyman Rosen
2004-05-16 13:48 ` Ludovic Brenta
2004-05-17 2:30 ` Hyman Rosen
2004-05-17 5:39 ` Martin Dowie
2004-05-17 7:48 ` Ludovic Brenta
2004-05-17 15:01 ` Hyman Rosen
2004-05-17 16:31 ` Georg Bauhaus
2004-05-17 17:40 ` Hyman Rosen
2004-05-17 19:17 ` Georg Bauhaus
2004-05-17 6:24 ` Martin Krischik
2004-05-17 19:48 ` James Kanze
2004-05-18 6:27 ` Martin Krischik
2004-05-17 12:33 ` Dmitry A. Kazakov
2004-05-17 13:46 ` Martin Krischik
2004-05-17 15:03 ` Dmitry A. Kazakov
2004-05-17 16:02 ` Alexander E. Kopilovich
2004-05-18 7:48 ` Dmitry A. Kazakov
2004-05-19 1:20 ` Alexander E. Kopilovich
2004-05-19 9:59 ` Dmitry A. Kazakov
2004-05-19 12:38 ` Hyman Rosen
2004-05-19 13:28 ` Dmitry A. Kazakov
2004-05-19 13:09 ` Georg Bauhaus
2004-05-19 13:44 ` Hyman Rosen
2004-05-19 14:17 ` Dmitry A. Kazakov
2004-05-19 14:15 ` Dmitry A. Kazakov
2004-05-21 11:39 ` Georg Bauhaus
2004-05-21 20:33 ` Dmitry A. Kazakov
[not found] ` <c8mkor$rlq$1@a1-hrz.uni-duisburg.de>
2004-05-23 1:28 ` Hyman Rosen
2004-05-23 8:55 ` Dmitry A. Kazakov
2004-05-24 11:38 ` Georg Bauhaus
2004-05-24 13:57 ` Dmitry A. Kazakov
2004-05-24 14:40 ` Georg Bauhaus
2004-05-25 8:32 ` Dmitry A. Kazakov
2004-05-25 15:47 ` Georg Bauhaus
[not found] ` <URJ8Eg0vzF@VB1162.spb.edu>
2004-05-17 16:50 ` Marius Amado Alves
2004-05-18 8:27 ` Dmitry A. Kazakov
2004-05-15 17:20 ` Pascal Obry
2004-05-13 19:33 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox