C++11 constexpr到过时的模板元编程

C++11 constexpr to obsolete template meta-programming?

本文关键字:编程 constexpr 过时 C++11      更新时间:2023-10-16

据我所知,constexpr不像模板元编程那样是图灵完备的,所以我相信它们不一样。所以问题是constexpr在多大程度上使模板元编程过时了?

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

类模板和constexpr都可以用来包含编译时常数表达式,但相似性到此为止。他们不是多余的,TMP不会很快消失。

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