przypisywanie pól w zależności od typu obiektu

0

Witam
Przerobiłby mi ktoś poniższy fragment kodu na C++? Wiem że tutaj chyba jakoś techniki C++11,14 trzeba zastosować type_traits ale nie wiem jak, bo nie widzę tego.

void Human::setAction(Action* action)
{
   mOngoingAction.state = action->state;

   jeśli action dziedziczy m.in. po ActionPos bądź to po prostu typ ActionFacePos
       mOngoingAction.point = action->point;
   else
       mOngoingAction.point = D3DXVECTOR3(0,0,0);
   jeśli action to typ ActionFacePos
       mOngoingAction.face = action->face;
   else
       mOngoingAction.face = 0;
}

klasa Action ma pole 'state'
klasa ActionPos dziedziczy po Action i ma pole 'point'
klasa ActionFacePos dziedziczy po ActionPos i ma pole 'face'
0

mOngoingAction zakładamy że ejst typu ActionFacePos

1 użytkowników online, w tym zalogowanych: 0, gości: 1