我知道这个问题是主观的,我并不是试图开始任何宗教战争,所以请尝试尽量客观.明确的优缺点和比较.
通用编程:允许编写代码一次,并使用不同的数据结构.>元编程:允许在编译时利用模板生成高效的代码.>检查:允许在编译时检查某些属性:表达式有哪些类型?一个函数有多少个参数?每个人有什么类型?>面向对象编程:允许程序员编程面向对象,具有复杂的功能,如多重继承和私有继承.>程序编程:允许程序员将函数放在任何类之外.结合ADL等高级功能,可以将干净的代码写入特定类别的细节.
除了这些,C在很大程度上保持与C代码的兼容性,但有一些差异.这些可以在C标准的附录D中阅读,连同原因和可能的固定使C代码有效的C代码.