C++11 – a good example of using std::function

struct Wanderer
{
    explicit Wanderer(std::vector<std::function>& update_loop)
    {
        update_loop.emplace_back([this](float dt) { update(dt); });
    }
    void update(float dt);
};

struct Diver
{
    explicit Diver(std::vector<std::function>& update_loop)
    {
        update_loop.emplace_back([this](float dt) { update(dt); });
    }
    void update(float dt);
};

int main()
{
    std::vector<std::function> update_loop;
    Wanderer wanderer{update_loop};
    Diver diver{update_loop};

    while (true)
    {
        for (auto & function : update_loop)
        {
            function(0.016f);
        }
    }
}
Advertisements
This entry was posted in C++, Programming. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s