OONumerics User :

From: Mike Marchywka (mmarchywka_at_[hidden])
Date: 2006-03-27 16:57:03


Worked from the cygwin version, at least it tried to link. I used to have so many problems
with the MS compilers finding stuff I gave up on anything fancy.
You can google the terms and find mail lists that discuss related issues- I think early
on there were lots of problems like this.
 
$ gcc asdf.cpp
/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../libcygwin.a(libcmain.o):: undefin
ed reference to `_WinMain_at_16'
collect2: ld returned 1 exit status
 
 
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];
   }
}
 
;

 

*************************************************************************
Mike Marchywka
EyeWonder
Instant Streaming, Infinite Results

1447 Peachtree Street
9th Floor
Atlanta, GA 30309

w.678-891-2033
c.
h.770-565-8101
mmarchywka_at_[hidden]
alt: marchywka_at_[hidden]
Instant Streaming, Intelligent results.
*************************************************************************




-----Original Message-----
From: oon-list-bounces_at_[hidden] [mailto:oon-list-bounces_at_[hidden]]On Behalf Of Hari Sundar
Sent: MondayMarch-27-2006 02:33 PM
To: oon-list_at_[hidden]
Subject: Re: [oon-list] Static Polymorphism


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