Scala 的宏和 C++ 模板都提供了对编译时元编程的访问。您能否详细说明相同点和不同点?它们在表现力方面是否相同?
问问题
556 次
2 回答
10
它们之间的一个重要区别是 Scala 宏是用 Scala 编写的,而 C++ 模板是它们自己的编程语言,这与 C++ 完全不同。C++ 是一种命令式的面向对象的严格不纯语言,C++ 模板是一种声明性混合逻辑/功能的非严格纯语言,它从未打算用作成熟的编程语言,因此缺乏许多必要的特性大型编程。
于 2012-10-09T11:44:33.520 回答
4
它们都提供编译时元编程,并且都图灵完备,但这就是它们的共同点。我不是 C++ 专家,但据我所知,C++ 模板正在完善这一事实很少被利用,并且很难将它们用于实际编程。通常,模板仅用于提供参数多态性(也称为泛型),而 Scala 宏是用 Scala 编写的,可以在编译时使用该语言的全部功能。
于 2012-10-09T11:34:18.627 回答