std :: assert发生了什么

时间:2016-05-09 19:44:45

标签: c++ c namespaces std assert

This answer并且它的大量重复表明我应该使用#include <c*>作为我在C ++代码中提取的C标头,并且我应该用{{{{}}调用它们1}}。

我一直这样做,但我注意到一个例外。 std::*似乎无法定义,即使我正确std::assert

这里发生了什么?这是实施疏忽还是实际例外?

2 个答案:

答案 0 :(得分:15)

assert是一个宏,而不是一个函数。因此,它需要与普通的assert(condition)一起使用。

以下是支持链接:http://en.cppreference.com/w/cpp/error/assert

答案 1 :(得分:11)

assert是一个宏,因此无法将其限制为命名空间。