以前没事看看boost,里面有一个spirit 库专门用来做词法分析的库。
里面运用了,大量的操作符重载和模板相关的运算,来达到用C++的语法来写ebnf的代码。
这里面ebnf语法是他自已创造的,为了兼容C++的操作符重载,以及模板,搞出来的奇怪东西。
用这个库写程序,简直就是超越你对C++的想象。在这里C++完全不再是普通人用到的C++,没有一个类不是
操作符重载,如果有一个不是那么你的程序将出现奇怪的关于模板实列化的错误。
今天看看D语言的项目,http://www.dsource.org/projects/ebnf,又发现一个试图用操作符重载和模板来创造
一个新的ebnf的项目。
D语言爱好者,没事都吹,D语言简化了C++的模板,操作符重载方面的东西,没想到还是有人创造这样的
烂东西。
感觉一个语言好不好,很多时候,还是要看拿他去做什么事。
像现在这个想通过操作符重载和模板来做这么多事,已经超越语言设计者本身设计这种语法的初衷了,
所以不好用也是正常的.
我记得某大师指导我们,一般不要重载*,&,这样会加大这个应用这个类的复杂性。