我有一個導出的類,它使用一個頭只結構作爲成員變量。優雅地禁用警告
#include "SomeStruct.h"
class API_CLASS SomeClass
{
public:
// ...
private:
#pragma warning(push)
#pragma warning(disable: 4251)
SomeStruct _active;
#pragma warning(pop)
};
由於結構未導出,所以我得到警告4251。該結構是外部代碼的一部分,而不是當前範圍的一部分。
我想讓這段代碼更具可讀性,因爲這是我將分發的頭文件。 理想情況下,我希望類閱讀
#include "SomeStruct.h"
class API_CLASS SomeClass
{
public:
// ...
private:
DISABLE_WARNING_BEGIN(4251)
SomeStruct _active;
DISABLE_WARNING_END
};
這可能是更多的工作,以禁用多個警告,但如果是可以做的,那麼偉大的,但沒有必要的。該宏應導致代碼僅適用於WIN32環境。我試圖寫宏,但包含'#'超出了我的意思。
說實話,我不會去那裏...無論如何警告號碼是編譯器特定的,所以你會模糊而不是澄清。對於僅忽略以下行的警告,您可以使用更緊湊的「#pragma warning(suppress:4251)」。 – heinrichj