C++11 constexpr到过时的模板元编程
C++11 constexpr to obsolete template meta-programming?
据我所知,constexpr
不像模板元编程那样是图灵完备的,所以我相信它们不一样。所以问题是constexpr
在多大程度上使模板元编程过时了?
constexpr
是绝对图灵完备的。允许递归。这是定义在编译时和运行时工作的函数的一种方便方式。constexpr
函数仅仅是函数,不能对类型执行操作。(当然,除非你使用模板元编程来定义上述函数。)
类模板和constexpr
都可以用来包含编译时常数表达式,但相似性到此为止。他们不是多余的,TMP不会很快消失。
不过,一些特别难看的编译时计算可能会被更优雅地重写为适当的函数。
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 多成员Constexpr结构初始化
- 条件constexpr函数
- 有一个打印语句的函数是一种糟糕的编程实践吗
- constexpr 函数中的非文字(通过 std::is_constant_evaluated)
- Visual C++ constexpr Hints
- 如何确认我的constexpr表达式实际上已经在编译时执行
- 为什么constexpr的性能比正常表达式差
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 是否可以使用if constexpr删除控制流语句
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 为什么std::isnan 不是 constexpr?
- Constexpr替代了新的放置方式,可以让内存中的对象保持未初始化状态
- 当一个值是非常量但用常量表达式初始化时使用constexpr
- 使用 constexpr 或模板元编程简化较长的展开循环表达式
- 是否可以以编程方式初始化 constexpr std::array 成员
- constexpr上的模板元编程示例
- C++11 constexpr到过时的模板元编程
- 使用constexpr或struct进行元编程
- 打印类型包括装饰,模板元编程,constexpr,使用什么