这个问题进一步来自前一个问题:https://stackoverflow.com/questions/1834485/aspect-oriented-programming-aop-in-c-not-c-anyone-doing-it
这个问题的答案指出了我们在皇后大学的一些研究实践: http://sailhome.cs.queensu.ca/~bram/aspicere/index.html。
除了这项研究工作之外,有没有人知道生产代码中面向方面C的实际使用情况?如果不是,您认为困难在哪里?如果是的话,那么它不受欢迎的障碍是什么?
我认为AOP的好处是显而易见的。但是在AOP-Java流行十年之后,AOP-C仍然几乎不存在,必然有一些原因。你对此有何见解?
答案 0 :(得分:3)
经过一番思考后,我相信答案是C缺乏结构构造,你可以在这里结合横截面。
要解决这个问题,一个项目必须施加严格的结构约定,这是程序员不容易达成一致的。如果您确实让程序员同意这样的约定,那么项目可能会选择更好的语言。
答案 1 :(得分:1)
我认为主要原因是在C / C ++中实现AOP的传统方法需要一个复杂的框架来使事情有效。 此外,C ++是严格的类型语言,这使得实现比C更难。
但是,现在是时候了。新的C ++ 11~17为您提供了一些非常强大的功能来完成所有技巧。
你可以查看这个:https://github.com/whitebob/qaop 一个非常轻量级,仅限标头的AOP框架,它易于使用。
我是这个正在进行的项目的作者,所以如果你有一些建议或抱怨,请联系我:p