你能幫我理解爲什麼我得到unused-variable警告不是所有未使用的靜態const變量嗎? 我準備了一個簡單的代碼。這裏有兩個文件main.cpp和incl.h.未使用的變量警告是不是所有未使用的靜態const變量
incl.h
#ifndef INCL_H
#define INCL_H
struct A
{
static A& instance()
{
static A a;
return a;
}
};
static const A a = A::instance();
static const A& b = A::instance();
#endif
的main.cpp
#include "incl.h"
int main()
{
return 0;
}
我預計會有2未使用變量警告(a和b fariables),但事實上他的警告是唯一一個用於變量b。
$ g++ -std=c++11 -Wall -Wextra -O2 -c main.cpp
In file included from main.cpp:1:0:
incl.h:14:17: warning: ‘b’ defined but not used [-Wunused-variable]
static const A& b = A::instance();
爲什麼不變量一個原因相同的警告?
我想你會看到與任何類類型相同的現象。 – molbdnilo
你使用的是哪個版本的g ++系列? – Jonas
@Jonas,g ++版本是5.4.1 –