具有代理设计模式的预处理器
Preprocessor with proxy design pattern
在代理部分,来自四人帮的设计模式说:
重载成员访问操作符并不是适用于所有类型的代理的好方法。一些代理需要精确地知道调用哪个操作,并重载成员访问操作符在这些情况下不起作用。[…]
在这种情况下,我们必须手动实现将请求转发给主题的每个代理操作。
[…]
一般在转发之前,所有操作都会验证请求是否合法,原始对象是否存在等等对主体的请求。一遍又一遍地写这段代码很乏味。所以通常使用预处理器来自动生成它。
好的,哪个预处理器和如何在c++中?
在c++中实现某些设计模式的规范参考是
关于使用c++类型系统构建设计模式的技术的另一个很好的参考是关于 的书。现代c++设计由Alexandrescu
c++模板Vandevoorde &Josuttis
和模板元编程的引用是
c++模板元编程:Boost及以后的概念、工具和技术作者:David Abrahams和Alesky Gurtovoy。
我认为它们的意思是围绕主题类自动生成包装代码。SWIG项目生成的包装器代码就是一个例子。
相关文章:
- 错误:无效的预处理指令 #i 的意思是 #if?
- C++预处理会生成变量成员、资源库和映射
- 使用预处理指令检查是否包含标头?
- 预处理的 C/C++ 文件是否特定于计算机?
- 使用 GCC 对 C 文件进行部分预处理(不删除 "define" 指令)
- 在 CPLEX 中求解线性规划,无需剪切和预处理
- CPP -D 选项,用于预处理 Fortran 代码
- 错误:粘贴"tmp_UINT"和"+"未提供有效的预处理令牌
- 任务计划程序库的预处理不起作用 - 多定义错误
- Eclipse 问题 - 编译期间不考虑 .c 和 .cpp 文件中定义的预处理
- 使用python预处理后,C++(opencv)中的垫子类型数据与image_to_array相同
- Howo 使用 cl 预处理为 masm 组装生成一个单独的文件
- 我有一个预处理的 C/C++ 源文件 (cacti.i).如何从这个 .i 文件生成可执行二进制文件,以便我可以像 ./
- 如何使用Visual Studio C/C++编译器(cl.exe)来预处理我的objective-C代码
- 是具有预处理前分支实现的结构违反ODR
- 与不完整的Cholesky预处理的共轭梯度返回特征库的意外错误
- Visual Studio C - 无法输出预处理文件
- 在海湾合作委员会中加快宏观预处理的任何方法
- Xmllint未设置,而在路径中找不到XMLLINT;跳过XML预处理
- 当头文件被预处理时是否有一个预处理器选项显示?