zweig@m.cs.uiuc.edu (05/25/89)
It seems like G++ isn't able to tell the difference between a pointer and a const pointer (i.e. pointer to something you're not allowed to change) for purposes of operator overloading. For example: overload f; int f(const int * i) { return (*i); } int f(int * i) { return (*i); } produces the error messages: In function f (int *): tmp.cc:8: conflicting types for `int f (int *)' tmp.cc:3: previous declaration of `int f (const int *)' Thus upshot is that G++ is able to complain about my sending a const int * into a function that takes an int * (since it might let you illegally change what's being pointed at), but there's no way to have a function that does the right thing both for pointers to constant- and pointers to nonconstant values. -Johnny Zweig University of Illinois at Urbana-Champaign Department of Computer Science --------------------------------Disclaimer:------------------------------------ Rule 1: Don't believe everything you read. Rule 2: Don't believe anything you read. Rule 3: There is no Rule 3. -------------------------------------------------------------------------------