小编Pot*_*tat的帖子

std :: function vs Lambda用于传递成员函数

我正在为游戏引擎创建消息传递系统,其中引擎的最终用户可以创建消息对象并将其传递给游戏对象,以由包含附加到游戏对象的组件的侦听器对象进行解释.如果消息与侦听器正在侦听的消息匹配,则侦听器应调用函数指针并将其传递给已接收的消息.基本结构看起来像这样:

class Message
{
    std::string message;
};

class Listener
{
    std::string target;
    void (*fn)(Message*);
};
Run Code Online (Sandbox Code Playgroud)

使用游戏对象的代码来接收如下所示的消息:

//if the queue is empty then dont do anything
if (messageQueue.empty())
{
    return;
}

//else grab the front of the queue
Message* newMessage = messageQueue.front();

//pop our message from the queue
messageQueue.pop();

//for each component in our list
for (std::vector<Component*>::iterator i = ComponentList.begin(); i < ComponentList.end(); i++)
{
    Component* itemp = *i;
    //for each message in its listener list
    for (std::vector<Listener*>::iterator j = itemp->Listeners.begin(); …
Run Code Online (Sandbox Code Playgroud)

c++ lambda pointers c++11

4
推荐指数
1
解决办法
2904
查看次数

标签 统计

c++ ×1

c++11 ×1

lambda ×1

pointers ×1