("DotProduct", &Vector3::DotProduct);
);
即可以完成对它的构造函数以及几个属性的反射注册, 然后我们就可以通过反射库来使用它了....模板语言可以看成是一种专用型的脚本语言, 以格式化文本输出作为自己的设计目的....}
}
}
}
}
注意unsafe和fixed关键字的使用, P/Invoke封装通过对非安全的指针的使用, 弱化c++与C#的差异, 使相关的结构体....h文件中, 比如Vector3被定义在vector3.h中, 而Ray被定义在ray.h中, 实际的处理过程, 再加上一些前置声明, 我们可能会在不同的Cursor上处理这些相关的内容, 这对于多Pass...方便在需要的节点加入自定义数据, 处理定制流程, 如meta attribute支持.
9.2 整体的处理流程
加入自定义的结构化ClangAST层, 整个处理流程如下所示:
9.3 结构化AST的代码组织