当前位置:  开发笔记 > 编程语言 > 正文

nonptr-new-declarator中的错误表达

如何解决《nonptr-new-declarator中的错误表达》经验,为你挑选了1个好方法。

在[expr.new]/7中有以下短语:

如果转换为表达式后的表达式std::size_t是核心常量表达式并且表达式是错误的,则程序是错误的.否则,具有错误表达式的new表达式不会调用分配函数,并通过抛出与类型的处理程序(15.3)匹配的类型的异常来终止 std::bad_array_new_length.

区分错误的核心常量表达式和错误表达式的相关性是什么?



1> Dietmar Kühl..:

您引用的段落之前的段落表示表达式错误的条件.从本质上讲,它归结为价值是负面还是太大的问题.如果是这样,那就是错误.

一个核心常量表达式是什么编译器能够而且将会在编译时计算.因此,如果相应的表达式可以静态地确定为错误的,则它是编译时错误.如果表达式不是常量,则可能无法在编译期间确定其值.但是,在这种情况下,将在运行时检测到错误,并且错误必须导致异常.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有