C++ 宏函数调用缺少参数警告,即使给定参数也是如此

C++ 宏函数调用缺少参数警告,即使给定参数也是如此,c++,c,visual-c++,C++,C,Visual C++,我编写了一个简单的宏,在Visual Studio中当在Debug配置中遇到断点时抛出断点: #ifdef _MSC_VER # define FLING_BREAK() __debugbreak #endif // _MSC_VER 我如何调用它的一个示例是: FLING_BREAK(); 但是,这会导致警告C4551:函数调用缺少参数列表 我尝试了几种不同的方法来更改宏: #ifdef _MSC_VER # define FLING_BREAK(...) __debugb

我编写了一个简单的宏,在Visual Studio中当在
Debug
配置中遇到断点时抛出断点:

#ifdef _MSC_VER
#   define FLING_BREAK()    __debugbreak
#endif  // _MSC_VER
我如何调用它的一个示例是:

FLING_BREAK();
但是,这会导致
警告C4551:函数调用缺少参数列表

我尝试了几种不同的方法来更改宏:

#ifdef _MSC_VER
#   define FLING_BREAK(...) __debugbreak
#endif  // _MSC_VER

它们会导致关于缺少参数列表的警告,即使我给出了一个字符串:

FLING_BREAK("This shouldn't warn?"); // throws warning C4551
你知道如何解决这个问题,同时仍然保持调用这个宏的相同语法吗?我在GCC或Clang8.0上没有得到这个警告,只有在MSVC中。谢谢

\uuu debugbreak()
是:

当你使用

FLING_BREAK();
它扩展到

__debugbreak;
i、 e.您没有进行函数调用。这就是编译器所警告的。将宏更改为:

#   define FLING_BREAK()    __debugbreak()

\uu debugbreak
是一个函数,需要
()
__debugbreak;
#   define FLING_BREAK()    __debugbreak()