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

标签 c++ templates c++11 constexpr

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

最佳答案

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

类模板和constexpr 都可以用来包含编译时常量表达式,但相似之处仅此而已。它们不是多余的,TMP 不会很快消失。

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

关于C++11 constexpr 过时的模板元编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9497993/

相关文章:

c++ - 循环 C++ 头文件包括

html - 是否有工具可以将任何网站转换成其框架正在使用的模板?

C++:在基本模板类中调用派生的专用虚函数

c++保存绑定(bind)对象并在asio之后使用它

c++ - 我有一个关于 std::vector<shared_ptr> 的问题

c++ - C++ STL 容器中的多态性

java - 如何使用 JNA 在 Java 中传递包含 char* 的结构并避免数据复制?

c++ - 使用c++进行几何形状识别

c++ - 正确的线程调用语法?错误:没有对 std::thread::thread(<brace-enclosed initializer list>) 的匹配调用

c++ - reinterpret_cast 会导致未定义的行为吗?