C++ 一种禁止方法被使用的宏

Posted Eritque arcus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 一种禁止方法被使用的宏相关的知识,希望对你有一定的参考价值。

#if defined(_MSC_VER)
#define ShouldNotUse(msg) _Pragma("warning(error:4996)") [[deprecated(msg)]] _Pragma("warning(warning:4996)")
#else
#if defined(__GNUC__)
#define ShouldNotUse(msg) [[deprecated(msg)]] __attribute__((error(msg)))
#else
#define ShouldNotUse(msg)
#endif
#endif

所以如果使用被这个macro修饰的方法时

ShouldNotUse("denied") void test()
int main()
	test();

就会抛出编译期异常, 如果不调用就不会
playground

主要用于禁掉派生类里的成员方法(因为有继承, 所以不能直接=delete)

以上是关于C++ 一种禁止方法被使用的宏的主要内容,如果未能解决你的问题,请参考以下文章

C++ 一种禁止成员方法被使用的宏

WORD中的宏被禁止怎么办?

打开Excel时出现“该工程中的宏被禁止”,怎么启用宏?

word2007安装MathType后,原有复制粘贴功能被禁止,显示该工程中的宏被禁止。

WORD里面的宏禁用怎么解决

在 C++ 中禁止复制构造函数的最可靠方法是啥?