【发布时间】:2019-11-04 16:11:12
【问题描述】:
我编写了一个简单的宏,当它在Debug 配置中被击中时在 Visual Studio 中抛出一个断点:
#ifdef _MSC_VER
# define FLING_BREAK() __debugbreak
#endif // _MSC_VER
我如何调用它的一个例子是:
FLING_BREAK();
但是,这会导致warning C4551: function call missing argument list
我尝试了几种不同的方式更改宏:
#ifdef _MSC_VER
# define FLING_BREAK(...) __debugbreak
#endif // _MSC_VER
和
#ifdef _MSC_VER
# define FLING_BREAK(str) __debugbreak
#endif // _MSC_VER
即使我给出一个字符串,它们也会导致关于缺少参数列表的警告:
FLING_BREAK("This shouldn't warn?"); // throws warning C4551
知道如何解决这个问题,同时仍然保持调用这个宏的相同语法吗?我没有在 GCC 或 Clang 8.0 上收到此警告,仅在 MSVC 中。谢谢!
【问题讨论】:
-
__debugbreak是一个函数,需要()。
标签: c++ c visual-c++