使用值语义,可以避免大量堆管理开销和程序员的内存管理负担,可以使复杂对象的内存布局更高效,但是也带来和很多问题。
值语义需要定义拷贝和赋值的行为,增加了编程工作量和引入bug的概率。
而大量的拷贝和赋值又带来额外开销,因此大量使用“引用”,避免拷贝发生
进一步又引入了右值印用和move语义,试图尽量用move取代copy。
另一方面,传统C++的虚拟多态机制需要通过指针来实现,而现代C++鼓励使用的值语义阻碍了多态的实现。
不得已,又大量的通过模板系统部分代替多态的功能,导致标准库中模板泛滥。
C++极致追求性能,可以理解,但是为了性能把语言搞的对普通程序员越来越不友好,是不是得不偿失?
牺牲一些效率,实现一个基于虚拟多态的简洁优美的标准C++基础库,是不是更有市场?
哈哈,其实我想要的就是一个使用C++语法的delphi, 或者直接编译本地代码的C#,
--
FROM 123.112.70.*