Иначе компилятору пришлось бы сохранять в бинаре вообще все имена всех методов, что крайне затратно :)
Хм, да, логично. Это если компилятор не может проследить, от каких методов я беру указатели, хотя это должно быть возможно отследить и добавить в таблицу только их.
А ещё можно было бы оптимизировать реализацию за счёт указания класса, потому что рядом с указателем на метод у программиста обычно есть и указатель на класс.
Я могу, хотя бы, рассчитывать, что два указателя на один и тот же метод того же класса всегда будут иметь одинаковое значение указателя в течение одного запуска программы?
Разве inline влияет на это? Если где-то берется адрес inline функции, компилятор не имеет права выбрасывать тело функции и все указатели будут указывать на него.
inline влияет как раз именно на это - позволяет инстанцировать функцию несколько раз (соответственно у неё могут быть разные адреса в каждом TU с инстанциацией)
inline влияет как раз именно на это - позволяет инстанцировать функцию несколько раз (соответственно у неё могут быть разные адреса в каждом TU с инстанциацией)
inline влияет как раз именно на это - позволяет инстанцировать функцию несколько раз (соответственно у неё могут быть разные адреса в каждом TU с инстанциацией)
Линкер выкинет все дубликаты и оставит один инстанс.