Какой алгоритм использует gcc для преобразования вызовов через указатели функций в прямые вызовы? - PullRequest
5 голосов
/ 07 октября 2010

Я слышал, что последние версии gcc очень хороши для преобразования вызовов через указатели функций в прямые вызовы. Тем не менее, я не могу найти ничего об этом в Интернете или быстрый просмотр исходного кода gcc. Кто-нибудь знает, правда ли это, и если да, то какой алгоритм он использует для этого?

Ответы [ 2 ]

1 голос
/ 16 октября 2010

Вы можете найти эту статью интересной.Он датирован 2005 годом, и я не уверен, достаточно ли он «недавний», но в нем подробно рассматривается тема:

http://www.codeproject.com/KB/cpp/FastDelegate.aspx

0 голосов
/ 15 октября 2010

Это просто форма распространения значения.Если я могу доказать, что указатель объекта p (на виртуальный вызов) всегда указывает на объект конкретного конкретного класса, то я могу напрямую вызывать функции-члены этого класса.Если нет, я должен пройти через vtable.

...