| T.R | Title | User | Personal Name
 | Date | Lines | 
|---|
| 794.1 |  | TLE::LUCIA | http://asaab.zko.dec.com/~lucia/biography.html | Mon Jan 27 1997 12:37 | 10 | 
|  | What other class members ought to have the class scope?  We don't print it for
any 'print' command that I know of.  stop in and the associated reporting
mechanism print the class name::member...  
What happens with (assuming they work right) assignment?  Do you say a
c1.numbers=zero or a c1.numbers=c1::zero?  And if C2 is derived from C1 then it
gets even more confusing.
cout << c1.numbers says 0
 | 
| 794.2 |  | ADA9X::BRETT |  | Tue Jan 28 1997 19:39 | 7 | 
|  | *ALL* class members ought to have class scope.
For assignment, you must say (assuming you are outside the class)
	C::E e = C::e1;
/Bevin
 | 
| 794.3 |  | TLE::LUCIA | http://asaab.zko.dec.com/~lucia/biography.html | Wed Jan 29 1997 11:25 | 32 | 
|  | > *ALL* class members ought to have class scope.
What do you really mean?
class foo {
public:
  foo();
  void print();
private:
  int x;
};
whatis foo
class foo {
  void foo::foo(void);
  void foo::print(void);
  int foo::x;
}
??
what if we've entered 'class  foo' to set the current scope?
I think some enumeration is important to get this right.  Otherwise, it will be
more noise than help.  I ran into this problem when I made ladebug do
language-dependent printing of types (mostly Fortran/Cobol/Ada changes, but the
general mechanism was implemented and then C/C++ were made to use it) and the
combinatorics get large very very quickly.
Tim
 
 | 
| 794.4 |  | ADA9X::BRETT |  | Wed Jan 29 1997 11:38 | 20 | 
|  | I see your point.
The problem is you have to print out the qualified name being sensitive to
where it is.  
For example
class C1 {
    typedef int T1;
    T1 x;
};
class C2 {
    C1::T1 x;
};
I agree that ladebug should strip off the leading part of the qualified
name that corresponds to the scope that is being shown.
/Bevin
 | 
| 794.5 |  | TLE::BRETT |  | Thu May 01 1997 08:46 | 14 | 
|  | (ladebug) whereis zero
"tmp.cxx"`C2._DECCXX_generated_name_16ee17bf.zero
"tmp.cxx"`C1.zero
"tmp.cxx"`C2.zero
"tmp.cxx"`C1._DECCXX_generated_name_1abbf85e.zero
We should not be printing out the _DECCXX_generated_name_*
cases (although this may be a compiler/GEM issue, since doesn't happen in
.c cases)
We should be using :: not . as the separator
/Bevin
 | 
| 794.6 | Fixed! | TLE::SUBIR |  | Tue May 06 1997 06:29 | 3 | 
|  |     This is fixed in -36.
    
    Subir
 | 
| 794.7 |  | TLE::BRETT |  | Tue May 06 1997 07:46 | 3 | 
|  | The base note is fixed, but the issues in .-2 aren't
/Bevin
 |