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