Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Bindowanie niestatycznej funkcji składowej singletona

Ostatnio zmodyfikowano 2016-07-26 21:46
Autor Wiadomość
czosnek17
Temat założony przez niniejszego użytkownika
Bindowanie niestatycznej funkcji składowej singletona
» 2016-07-26 21:07:35
Taka sytuacja, najprostszy singleton. Jak dokleić do bindowania funkcję f(), żeby uruchomiła się po wywołaniu linijki
funkcja();
?
C/C++
#include <iostream>
#include <functional>
using namespace std;

class Klasa
{
    Klasa() { cout << "K" << endl; }
    Klasa( const Klasa & k ) { }
   
public:
    static Klasa & get()
    {
        static Klasa klasa;
        return klasa;
    }
   
    void f()
    {
        cout << "f()" << endl;
    }
};

int main()
{
    auto funkcja = bind( & Klasa::get );
    funkcja();
}
P-150280
pekfos
» 2016-07-26 21:21:59
Metodę niestatyczną trzeba wywołać na jakimś obiekcie, więc logika podpowiadałaby, że trzeba go podać.
http://en.cppreference.com/w​/cpp/utility/functional/bind
Masz nawet w jednym z przykładów.
P-150281
czosnek17
Temat założony przez niniejszego użytkownika
» 2016-07-26 21:46:22
Rzeczywiście, to było prostsze niż myślałem
bind( & Klasa::f, & Klasa::get() );
P-150286
« 1 »
  Strona 1 z 1