当我看到这条线时,我正在看这篇文章。
简而言之,代码如下所示:
struct cell {
typedef cell (*proc_type)(const std::vector<cell> &);
typedef std::vector<cell>::const_iterator iter;
typedef std::map<std::string, cell> map;
cell_type type;
std::string val;
std::vector<cell> list;
proc_type proc;
environment * env;
cell(cell_type type = Symbol) : type(type), env(0) {}
cell(cell_type type, const std::string & val) : type(type), val(val), env(0) {}
cell(proc_type proc) : type(Proc), proc(proc), env(0) {}
};
那么 typedef cell (*proc_type)(const std::vector &); 做?
typedef 应该像这样使用
typedef (existing) (new)
那么,当我们可以使用 cell 代替时,为什么要声明如此复杂的新类型呢?