LINUX.ORG.RU

История изменений

Исправление ilammy, (текущая версия) :

А посмотреть сигнатуру CreateThread не судьба?

И что я там должен увидеть?

#include <iostream>

double f(double(*g)(int))
{
    std::cout << g(5);
    return 0;
}

class A {
public:
    double g(int x)
    {
        return 3 * x * x;
    }
};

class B {
public:
    B(int m) : m_m(m) {}

    double g(int x)
    {
        return -7 - x * m;
    }

private:
    int m_m;
};

double g(int x)
{
    return 2 * x;
}

int main()
{
    A x;
    B y(1);

    f(g);
    f(/* WTF 1 ? */(A::g, x));
    f(/* WTF 2 ? */(B::g, y));
}

Что должно быть на месте WTF, чтобы мне вывело 10, 75 и –12?

Исходная версия ilammy, :

А посмотреть сигнатуру CreateThread не судьба?

И что я там должен увидеть?

#include <iostream>

double f(double(*g)(int))
{
    std::cout << g(5);
    return 0;
}

class A {
public:
    double g(int x)
    {
        return 3 * x * x;
    }
};

class B {
public:
    B(int m) : m_m(m) {}

    double g(int x)
    {
        return -7 - x * m;
    }

private:
    int m_m;
};

double g(int x)
{
    return 2 * x;
}

int main()
{
    A x;
    B y(1);

    f(g);
    f(/* WTF 1 ? */(A::g));
    f(/* WTF 2 ? */(B::g));
}

Что должно быть на месте WTF, чтобы мне вывело 10, 75 и –12?