使用されていないすべての静的const変数に対して未使用変数警告が表示されないのはなぜですか? 私は簡単なコードを用意しました。 main.cppとincl.hの2つのファイルがあります。未使用の静的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;
}
Iは、(aおよびb fariables用)2未使用変数の警告が存在するであろうことを期待は、実際に警告のみです1つは変数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です –