
Bugs in the Zortech C++ Compiler (ztc) version ???? :


1. All member functions with the same name have the same protection,
   they are all either private, protected, or public.

   Example:

   class A {

   private:

   void F(int x) { ...}


   public:

   void F(float x) {... }       // bug: the second F is considered private too

   };


   A a;

   a.F(1.0);         // error message:  F private member







2. Applying the adress-of operator & to the (reference type) result of 
   a member function call sometimes results in a syntax error message.


   Example:

   class generic_array {

    void * vec;

    void*&  elem(int i) { return vec[i]; }

   };


   class int_array : generic_array {

                     // syntax error |  "no instance of class generic_array"
                                     v
   int& elem(int i)  { return *(int*)&(generic_array::elem(i)); }

   };



3.  operator() cannot be overloaded as const and non-const


    Example:

    class matrix {
   
    
    double& operator()(int i, int j)       { return mat[i][j]; }

    double  operator()(int i, int j) const { return mat[i][j]; }


    };



    matrix M;

    x = M(i,j)   // error: ambiguous  function call






4.  Copy-constructors are sometimes not called when returning a value
    from a function


    Example:

    class T {

    ...

    T(const T& x) { ... copy constructor ...}


    };



    T  func()  { T x;  return x; }     // bug: copy constructor not called 




5. 
