如何对抗外部包括总是重新定义它的东西

时间:2016-05-22 15:55:44

标签: c++ macros assert

例如assert.h

...
#ifdef NDEBUG

#define assert(_Expression)     ((void)0)

#else  /* NDEBUG */
...

此区域不会被#ifdef, #define, #endif#pragma once投降。

我想定义自己的断言函数,所以我#undef并创建它,但是当一个文件包含任何包含assert.h之后的内容时,它会覆盖我之前创建的断言函数。 ..

例如:

#include "my_assert.hpp"
#include <iostream.h>

我的my_assert将失效并使用assert.h的定义。

0 个答案:

没有答案