Преобразует ли LLVM методы Objective-C в встроенные функции?

В соответствии с вашим комментарием:

«Нет, это не академический вопрос. Мне нужно вызвать функцию, принимающую в качестве аргумента Base*&»

Правильный способ решения это создать новую переменную указателя соответствующего типа и передать ее (или, вернее, ссылку на нее) соответствующей функции:

struct Base { };
struct Derived : Base { };

int main()
{
    Derived* derived = nullptr;
    Base* base = static_cast<Base*>(derived);
    my_function(base); // takes a Base*& argument

    // If you need the pointer value and are sure that
    // it's a Derived* type:
    derived = static_cast<Derived*>(base);
}

Обратите внимание, что вы, скорее всего, получили этот ответ скорее, если бы вы включили соответствующую информацию (из комментария, приведенного выше) в самом вопросе.

13
задан ma11hew28 20 November 2011 в 00:56
поделиться