Могу ли я получить полиморфное поведение без использования виртуальных функций?

Из-за моего устройства я не могу использовать виртуальные функции. Предположим, у меня есть:

class Base
{
    void doSomething() { }
};

class Derived : public Base
{
    void doSomething() { }
};

// in any place
{
    Base *obj = new Derived;
    obj->doSomething();
}

obj->doSomething() назову толькоBase::doSomething()

Есть ли способ сBase *obj, чтобы позвонитьdoSomething изDerived?

Я знаю, я могу просто поставитьvirtual доdoSomething() изBase это решает проблему, но я ограничен моим устройством, компилятор не поддерживает его.