This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: verbose terminate() on by default, pass 2


Ulrich Drepper <drepper@redhat.com> writes:

| Gabriel Dos Reis wrote:
| > Ulrich Drepper <drepper@redhat.com> writes:
| > 
| > |    char* p = "flop";
| > | 
| > | is wrong since the derefence does *not* belong to the type but instead
| > | the variable
| > 
| > The variable "p" has type "char*".  The vairbake "p" is not being
| > derefereced here.  The variable "p" is being initialized with a value
| > of type "char*".  
| 
| ... and
| 
|   char *p;
| 
| says just that.

No, however 

   char* p;

just says "p is variable of type 'char*'" in the same way 

   int i;

says "i is a variable of type 'int'".

| This silly attempt to keep all the parts of the type
| syntactically together fails in so many cases that I really cannot
| understand how somebody, who claims to have thought about these issues,
| can try to argue for it.

That sounds like you can't understand that someone who gives
considerable thought to the issue, in the scope of C++ emphasis on
types, cannot come to the same conclusion as you.  Ahem.

|  What about
| 
|   int (*f) (int) = 0;
| 
| or even
| 
|   int (*f) (int) = 0, b = 0;
| 
| Where is your emphasis on type here?

1)  int (*f)(int) just says "f" is of type "int (*)(int)".

2)  Multiple declarations condeensed in one-liner isn't considered
    good style by C++ people, and a style that does not support such
    multiple-declarators fits neatly in the picture. 

| You just say that C++ people use a
| different style but as everybody else you cannot give sufficient
| justification.

Certainly in the same way you didn't give sufficient reasons to
support your style. In the end, you can just say "they are Arrogant or
Wrong".  But claiming so does not automtically makes them arrogant or
wrong.  We're no more in the Inquisition time.

| Instead you're hiding behind existing practice which
| somebody, who didn't understand all the consequences, came up with.

I'm not hidding behind "existing practice which somebody, who didn't
understand all the consequences, came up with".   Firstly, I didn't
learn this style when contributing to V3.  I learnt it in TC++PL1, way
back then; then when I got enough understanding of the language, I
went back revisiting the issue, considering alternative styles.  And I
retained the style used th TC++PL, and later in the C++ Standard
definition.  I do consider the C++ Standards committee as a group of
people who have an unestimable degree of understanding what C++ is.


Actually, I do find you:
  1) unncessarily arrogant and insulting;

  2) failed to give technical arguments so that I can judge why I
     should adhere to your view, but you keep insulting.  The
     Inquisition is over, for quite some centuries now.  Sorry.

  3) are hiding your lacking of providing technical arguments behind ad
     hominem attacks.  That may be fine for you, but I don't find it a
     substitute for reason and logic if you were trying to convince me
     to have a different point of view.


| This is no argument you can use to force somebody to not use a more
| consistent and clearer scheme.

Is your insults arguments "to force somebody to use your scheme",
failing to prove it is consistent and clearer?

| I know that this rant won't change anything since unfortunately the
| wrong people have influence in the decision.  But do not claim that this
| scheme is universally recognized as correct and better, and that C
| people immediately start using it once they "see the light of C++".

Certainly I didn't say anything to that effect and don't have plan to
do so.  So, apart from your insults, I don't see the condtribution of
your sentences.

| It's completely wrong since nobody who truly understands the syntax can
| agree.  Your scheme only makes since in a language with different
| syntax.  Function pointer definitions have to be written as
| 
|   int(*)(int) f;

Gee, there are actually works and ideas going on in the C++ Extension
Working Group to support something to that effect -- but using prefix
instead of postfix notation.

| and multiple definitions are not allowed.  But this is not C++. 

So you know better than Bjarne Stroustrup what C++ is.  Congratulations!

-- Gaby


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]