询问C++中assert(not <condition>)语法是否被标准收录
关于
assert(not <condition>)的C++标准依据 not是C标准中定义的逻辑非运算符的替代关键字,它和!完全等价,这一点在C标准里有明确规定:
- C从C98开始就引入了这类替代关键字(包括
not、and、or等),目的是适配不支持符号的编程环境,或是提升代码可读性。 - 这些替代关键字属于C++标准语法范畴,所有符合标准的编译器都必须支持它们。
- 因此
assert(not std::is_sorted(...))和assert(!std::is_sorted(...))语义完全一致,都是合法的标准C++代码。
注:现代主流编译器默认就支持这类替代关键字,无需额外启用编译选项。
内容的提问来源于stack exchange,提问作者Vinod
相关产品推荐
相关产品推荐

