Image

Imagecaracrist wrote in Imageru_cpp

Category:

Требуется передать тип во время компиляции

class A
{
public:
int member1;
vector<ULONG> member2;
} * a;
class B
{
public:
char* member1;
A member2;
} * b;

int temp = 293;

template <class T>
bool foo(T * left, T * right)
{
return *left == *right;
}

мне нужен такой #define который получает два элемента.
Например: a->member1, temp
и строит чтото аналогичное: foo<int>(&(a->member1),&(temp))
Вся проблема в том, чтобы передать в template тип переменной из объекта. При этом не зависимо от того класс это или обычный int.
Всё это теоретически должно делаться при компиляции, однако я не нахожу как это возможно.

Visual Studio 2008, C++, под XP.

Upd.
Вот пример того что мне нужно... но это не откомпилируется...
#define chegoto(b,c) foo<typeid(b##).name()>(&b##,&c##)