LINUX.ORG.RU

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

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

игнорирует передачу лишних параметров

class X{
public:
    void foo(int a){
        printf("%d\n", a);
    }
};

int main(){
    X x;
    std::function<void(int)> f = std::bind(&X::foo, x, std::placeholders::_1/*, 1*/);
    f(42);
    return 0;
}

error: no viable conversion from '__bind<void (X::*)(int), X &, std::__1::placeholders::__ph<1>
&, int>' to 'std::function<void (int)>'
std::function<void(int)> f = std::bind(&X::foo, x, std::placeholders::_1, 1);

Исправление staseg, :

игнорирует передачу лишних параметров

class X{
public:
    void foo(int a){
        printf("%d\n", a);
    }
};

int main(){
    X x;
    std::function<void(int)> f = std::bind(&X::foo, x, std::placeholders::_1/*, 1*/);
    f(42);
    return 0;
}

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

Раскомментируй и обосрись

игнорирует передачу лишних параметров

class X{
public:
    void foo(int a){
        printf("%d\n", a);
    }
};

int main(){
    X x;
    std::function<void(int)> f = std::bind(&X::foo, x, std::placeholders::_1/*, 1/*);
    f(42);
    return 0;
}