据我了解,constexpr
与模板元编程不同,它不是图灵完备的,所以我相信它们是不一样的。所以问题是 constexpr
在多大程度上使模板元编程过时了?
最佳答案
constexpr
绝对是图灵完备的。允许递归。它是定义在编译时和运行时工作的函数的便捷方式。 constexpr
函数只是函数,不能对类型执行操作。 (当然,除非您使用模板元编程来定义所述函数。)
类模板和constexpr
都可以用来包含编译时常量表达式,但相似之处仅此而已。它们不是多余的,TMP 不会很快消失。
不过,一些特别丑陋的编译时计算可能会更优雅地重写为适当的函数。
关于C++11 constexpr 过时的模板元编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9497993/