我在一个名为Selene的项目中看到了这个(一个C++11 Lua封装器),我想知道它是做什么用的?
using Fun = std::function<void()>;
using PFun = std::function<void(Fun)>;
它是一个类(选择器)的私有成员。
相关代码:
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);