gpt4 book ai didi

c++ - 如果配置中未使用字段,则修复警告 "field a is not used"的好方法

转载 作者:太空狗 更新时间:2023-10-29 20:34:30 24 4
gpt4 key购买 nike

我有一个带字段的类,我将其输出到日志中。如果关闭日志(例如在 Release 中),我会收到警告(未使用私有(private)字段“a_”),因为我仅使用此字段输出到日志。

示例:

#include <iostream>

//#define TURNON_LOG

#ifdef TURNON_LOG
#define LOG(a) printf("%d", a)
#else
#define LOG(a) 0
#endif

class A
{
public:
A(int a) : a_(a)
{
LOG(a_);
}

private:
int a_;

};

int main(int argc, const char * argv[])
{
A a(10);
return 0;
}

我将 clang 与 -Wall 一起使用:

clang main.cpp -Wall

如果 TURNON_LOG 未定义,修复警告的最佳方法是什么?

最佳答案

除了 Baum mit Augen 的回答之外,对于 Clang(或任何 C++17 或更高版本的编译器),您可以使用 [[maybe_unused]] 属性来消除特定可能的警告-未使用的变量。

class A
{
public:
A(int a) : a_(a)
{
LOG(a_);
}

private:
[[maybe_unused]] int a_;
};

关于c++ - 如果配置中未使用字段,则修复警告 "field a is not used"的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48192418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com