gcc和__attribute __((unused))用于自动引用

时间:2016-08-31 10:04:32

标签: c++ gcc reference auto

使用gcc(已测试5.4.0和6.1.1)和-Wall,以下内容提供有关auto_ref的未使用变量的警告,但不会针对其他变量发出警告。 Clang不会发出任何警告。这对于汽车和汽车来说是否有区别?意图变量,为什么?

int main() {
    int __attribute__((unused)) int_var_unused = 42;
    int int_var = 42;
    int& __attribute__((unused)) int_ref = int_var;
    auto __attribute__((unused)) auto_var_unused = 42;
    auto auto_var = 42;
    auto& __attribute__((unused)) auto_ref = auto_var;
    return 0;
}

1 个答案:

答案 0 :(得分:1)

不确定它是否是GCC中的错误,但它的工作原理如此

__attribute__((unused)) auto& auto_ref = auto_var;

并且喜欢这个

auto& auto_ref __attribute__((unused)) = auto_var;

我想这个属性永远不会放在类型声明和名称之间。在文档中,我主要以第二个版本为例。