Смещение указателя базового класса во время компиляции относительно производного классаC++

Программы на C++. Форум разработчиков
Anonymous
Смещение указателя базового класса во время компиляции относительно производного класса

Сообщение Anonymous »

Код: Выделить всё

class Base1 {
int x;
};
class Base2 {
int y;
};
class Derive : public Base1, public Base2 {
public:
enum {
PTR_OFFSET = ((int) (Base2*)(Derive*)1) - 1,
};
};
Но компилятор ругается


ожидаемое константное выражение


Все знают, что значение выражения 4, кроме компилятора, что не так?
Как же тогда получить смещение во время компиляции?>

Подробнее здесь: https://stackoverflow.com/questions/190 ... rive-class

Вернуться в «C++»