Mar*_*ett 27
广泛使用标准库和STL,异常和模板 - 而不仅仅是C与类
Mic*_*fik 25
"现代"C++不怕使用以下任何一个或全部:
由于缺乏编译器支持或运行时性能,"旧"C++倾向于避免这些事情.相反,你会发现......
new
和delete
std::string
正如所有这些与那些论点一样,这两种方法都有其优点.现代C++并不是普遍的好.例如,嵌入式环境通常需要大多数人永远不需要的额外限制,因此您将看到许多旧式代码.总的来说,我认为你会发现大多数现代功能都值得定期使用.摩尔定律和编译器的改进已经解决了大多数避免新东西的原因.
Nem*_*vic 11
一个非常明显的区别是,在"旧式"C++中,您将看到许多手动创建new
和销毁的对象delete
.在现代C++中,只要有可能就在堆栈上创建一个对象,或者至少包含在某种智能指针中.
另一个区别是旧式C++更多地关注OOP,而现代C++使用混合编程风格:过程,模块,对象和泛型.自由函数在现代C++中被认为是一件好事,而在旧式C++中它们会被推到某个类中.
其他明显的差异包括使用构造和库变得成熟和稳定,足以用于生产代码:模板,异常,命名空间,STL等.
C++中有许多被认为是现代的东西.
首先,我认为,模板是非凡的出现.不仅是STL本身,而且模板的"常规"使用也导致了模板元编程的发展.例如,注意enable_if
即将出现的标准版本.
这是我认为C++程序员寻求通过构造强制执行正确性的运动中最显着的特征:
void*
这项高质量的研究也导致了普遍使用:
回顾这些库还表明,C++程序员不再具有对这些OO语言的自卑感:现在从这个复杂的语言中解脱出来,我们毫不犹豫地混合各种范式(OO,泛型,程序)来实现我们的目标.
总而言之,我认为Modern C++更像是一种心态.我们(C++程序员)试图摆脱困扰我们这么久的可怕的未定义行为,并试图释放我们的用户(通过定义不允许它的接口).我们也接受其他人来过的事实,重用现有的图书馆并不是软弱的表现.
归档时间: |
|
查看次数: |
13962 次 |
最近记录: |