public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Tolga Dalman <ates100@web.de>
To: gcc@gcc.gnu.org
Subject: Re: c++ "with" keyword
Date: Sat, 04 Jan 2003 17:59:00 -0000	[thread overview]
Message-ID: <20030104182546.50c4d558.ates100@web.de> (raw)
In-Reply-To: <3E171A85.8030008@chaincast.com>

On Sat, 04 Jan 2003 09:31:50 -0800 Gianni Mariani <gmariani@chaincast.com> wrote:

> Andrew Haley wrote:
> 
> >Momchil Velikov writes:
> > > >>>>> "Robert" == Robert Dewar <dewar@gnat.com> writes:
> > > 
> > >     Robert> If you think "with" is valuable, then the task is to
> > >     Robert> convince the guardians of the C++ standard of this. If
> > >     Robert> you can't convince the
> > > 
> > > Not related to this particular "with" discussion, but I couldn't
> > > disagree more.  A standards body should not invent language
> > > "features", but rather codify existing (proven) extensions.
> >
> >I totally agree.  A standards should not invent language features, or
> >-- heaven forbid -- programming languages.  The reason for this is
> >pretty obvious, in that once a feature is standardized it's too late
> >to remove it if it has some fatal flaw.
> >  
> >
> I agree as well.
> 
> Proposals of language extensions should come from anyone :)  The metrits 
> discussed in community and accepted as a standard once it is generally 
> accepted.
> 
> So, I'd like to steer the discussion back to the merits of "with".
> 
> The "with" syntax was a pain in the rear in Pascal and I never want to 
> see it again - this is why:
> 
> Take 2 structures, A and B which are both used in a "with" statement.
> 
> e.g. (I'll use the proposed new "with" syntax in c++ below)
> 
> Let's start with some valid working code ...
> 
> struct A {
>     int    X;
>     int    Y;
>     int    hUgH;
> };
> 
> struct B {
>     int    Z;
> };
> 
> int func()
> {
>         ....
>         A & a;
>         B & b;
>         ....
> 
>         with ( a )
>         witb ( b )
>         {
> 
>             Y = Z;
>             hUgH = X; //  woz this then eh ? <-- point of confusion
>         }
>         ...
> }
> 
> And a little later someone comes and fixes a bug and adds
> 
> struct B {
>     int    Z;
>     int    X;    // need an X to fix The Bug (tm)
> };
> 
> Oops - which X is now instantiated at "point of confusion" ?
> 
> Someone innocently added a new member and completly changed the 
> behaviour of the code.  For code maintainability, I'd suggest that this 
> would cause more difficult to discover problems than would be merited.
> 

it should be possible to disallow a "with" keyword within another "with" block.

> This is also one of the reasons I don't like namespaces much either - 
> hence I allways prefix identifiers that are not within a class's scope.
> 

hm, i know a lot of people who don't like namespaces aswell, but the point is: 
it'd be great to have a compiler-feature to make code more readable. 
i think, long struct-names are very annoying and a common  solution 
(either standard or compiler-addon) for this problem would be very good.
just my opinion. 

> If you were to implement (heaven forbid) the "with" mechanism, I'd 
> suggest you use the "using" keyword instead.
>

the actual name doesn't matter i think, but "with" is already used in other programming languages. so, why to use "using"?
 

brg, 
Tolga Dalman.

  reply	other threads:[~2003-01-04 17:55 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-04 14:29 Robert Dewar
2003-01-04 15:00 ` Momchil Velikov
2003-01-04 15:24   ` Andrew Haley
2003-01-04 16:25     ` Neil Booth
2003-01-04 17:35     ` Gianni Mariani
2003-01-04 17:59       ` Tolga Dalman [this message]
2003-01-04 18:36         ` Gianni Mariani
2003-01-04 18:54           ` Tolga Dalman
2003-01-04 23:32         ` Kevin Handy
2003-01-14 14:33 ` Fergus Henderson
  -- strict thread matches above, loose matches on Subject: below --
2003-01-06 13:07 Robert Dewar
2003-01-05 18:41 Robert Dewar
2003-01-05 13:03 Robert Dewar
2003-01-05 13:39 ` Toon Moene
2003-01-05 12:56 Robert Dewar
2003-01-05 18:22 ` Joseph S. Myers
2003-01-05 12:56 Robert Dewar
2003-01-06 12:18 ` Andrew Haley
2003-01-05 12:44 Robert Dewar
2003-01-05  3:16 Robert Dewar
2003-01-05  0:38 Robert Dewar
2003-01-05  0:29 Robert Dewar
2003-01-05  0:37 ` Kevin Handy
2003-01-04 23:27 Robert Dewar
2003-01-04 23:36 ` Lynn Winebarger
2003-01-05  2:55 ` Gianni Mariani
2003-01-04 22:13 Robert Dewar
2003-01-04 20:59 Robert Dewar
2003-01-04 22:36 ` Gianni Mariani
2003-01-04 20:09 Robert Dewar
2003-01-04 19:36 Robert Dewar
2003-01-04 19:59 ` Tolga Dalman
2003-01-04 19:13 Robert Dewar
2003-01-04 20:58 ` Gianni Mariani
2003-01-04 18:11 Robert Dewar
2003-01-04 18:47 ` Gianni Mariani
2003-01-04 17:52 Robert Dewar
2003-01-04 17:59 ` Gianni Mariani
2003-01-04 17:06 Robert Dewar
2003-01-04 17:22 ` Daniel Berlin
2003-01-05 11:33 ` Andrew Haley
2003-01-05 11:36   ` Toon Moene
2002-12-29  8:32 Norman Jonas
2002-12-29 12:46 ` Russ Allbery
2002-12-29  6:49 Erik Schnetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030104182546.50c4d558.ates100@web.de \
    --to=ates100@web.de \
    --cc=gcc@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).