Почему static_cast от указателя на базу до указателя на производный «недействителен?»

Итак, у меня есть этот код:

Node* SceneGraph::getFirstNodeWithGroupID(const int groupID)
{
    return static_cast<Node*>(mTree->getNode(groupID));
}

mTree-> getNode (groupID) возвращает PCSNode *. Узел является производным от PCSNode.

Все документы, которые я нашел на static_cast, говорят об этом: «Оператор static_cast может использоваться для таких операций, как преобразование указателя на базовый класс в указатель на производный class. "

Тем не менее, компилятор XCode (GCC) говорит, что static_cast от PCSNode * к Node * недействителен и не разрешен.

Есть ли причина, почему это так? Когда я переключаю его на приведение в стиле C, компилятор не предъявляет претензий.

Спасибо.

ОБНОВЛЕНИЕ: Несмотря на то, что на вопрос был дан ответ, я опубликую ошибку компилятора для полноты на случай, если у кого-то есть та же проблема:

ошибка: семантическая проблема: Static_cast от 'PCSNode *' к 'Node *' не разрешено

6
задан alk3ovation 27 April 2011 в 19:11
поделиться