加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C这行代码是什么意思?

发布时间:2020-12-16 09:50:22 所属栏目:百科 来源:网络整理
导读:我在一个名为 Selene(一个C 11 Lua包装器)的项目中看到了这个,我在徘徊它的作用? using Fun = std::functionvoid();using PFun = std::functionvoid(Fun); 它是类(Selector)的私有成员. 周边代码: namespace sel {class State;class Selector {private: fr
我在一个名为 Selene(一个C 11 Lua包装器)的项目中看到了这个,我在徘徊它的作用?

using Fun = std::function<void()>;
using PFun = std::function<void(Fun)>;

它是类(Selector)的私有成员.

周边代码:

namespace sel {
class State;
class Selector {
private:
    friend class State;
    State &_state;
    using Fun = std::function<void()>;
    using PFun = std::function<void(Fun)>;

    // Traverses the structure up to this element
    Fun _traverse;
    // Pushes this element to the stack
    Fun _get;
    // Sets this element from a function that pushes a value to the
    // stack.
    PFun _put;

    // Functor is stored when the () operator is invoked. The argument
    // is used to indicate how many return values are expected
    using Functor = std::function<void(int)>;
    mutable std::unique_ptr<Functor> _functor;

    Selector(State &s,Fun traverse,Fun get,PFun put)
        : _state(s),_traverse(traverse),_get(get),_put(put),_functor{nullptr} {}

    Selector(State &s,const char *name);

解决方法

它是一个C 11语法,涵盖了typedef功能( and more).
在这种情况下,它创建一个名为Fun的别名,它与std :: function< void()>的类型相同:

using Fun = std::function<void()>; // same as typedef std::function<void()> Fun

这意味着你可以这样做:

void foo() 
{
  std::cout << "foon";
}

Fun f = foo; // instead of std::function<void()> f = foo;
f();

同样对于PFun.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读