Задачка на тему указателей
От: debugx Россия http://oignatov.blogspot.com
Дата: 03.06.19 09:52
Оценка:
Попалась такая задачка про указатели:
struct A
{
    void foo() const { }
    char pad0[32];
};

struct B
{
    void bar() const { }
    char pad2[64];
};
struct C: A, B {};

int main()
{
    auto print = [](void (C::*ptr)() const)
    {
        void *data[2];
        std::cout << static_cast<std::ptrdiff_t*>(std::memcpy(data, &ptr, sizeof(ptr)))[1];
    };
    print(&C::foo);
    std::cout << " and ";
    print(&C::bar);
    std::cout << "\n";
}


Кто-нибудь может объяснить, почему будет такой вывод в консоль?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.