10

据我了解,constexpr与模板元编程不同,图灵不完整,所以我相信这些是不一样的。所以问题是模板元编程在多大程度上constexpr过时了?

4

1 回答 1

22

constexpr绝对是图灵完备的。允许递归。它是一种方便的方法来定义在编译时和运行时工作的函数。constexpr但是,函数只是函数,不能对类型执行操作。(当然,除非您使用模板元编程来定义所述功能。)

两个类模板constexpr都可以用来包含编译时常量表达式,但相似之处就结束了。它们不是多余的,TMP 不会很快消失。

不过,一些特别难看的编译时计算可能会更优雅地重写为适当的函数。

于 2012-02-29T15:12:02.460 回答