OONumerics User :

From: Hari Sundar (hsundar_at_[hidden])
Date: 2006-03-27 14:32:37


Sorry to trouble you all again, but it seems that I can't get the
Barton-Nackman
trick to work. I had problems originally, so tried a simple test problem ..
which worked, but my original problem is not working. My inheritance is like
this,

Class A {
protected:
  float * some_data;
  int x;
  int y;
  int z;
}

template <typename T>
Class B : public A
{
public:
    T& asLeaf() { return static_cast<T&>(*this); }
    inline float SomeFunc(int i, int j, int k) {
        return asLeaf().SomeFunc(i,j,k);
    }
}

class C : public B<C>
{
   inline float SomeFunc(int i, int j, int k) {
        return some_data[k*x*y + j*x + i];
   }
}

When I use gcc to compile this .. I get errors of the sort ..

error: 'some_data' was not declared in this scope
error: 'x' was not declared in this scope
error: 'y' was not declared in this scope

Any ideas ?

thanks,
~Hari