जीसीसी 6.1.1 मुझे सी पर एक पदावनत घोषणा चेतावनी देता ++ कोडपदावनत struct सदस्यों सी ++
struct foo
{
__attribute__ ((deprecated)) static const int a = 1;
};
dep.cpp:1:8: warning: ‘foo::a’ is deprecated [-Wdeprecated-declarations]
struct foo
^~~
dep.cpp:3:50: note: declared here
__attribute__ ((deprecated)) static const int a = 1;
documentation कहना है कि "एक चेतावनी में पदावनत विशेषता परिणाम यदि चर स्रोत फ़ाइल में कहीं भी प्रयोग किया जाता है । "।
चेतावनी बिंदु पहली पंक्ति (संरचना foo) के रूप में, क्या इसका मतलब यह है कि चेतावनी उठाई गई है क्योंकि संरचना बहिष्कृत सदस्य का उपयोग कर रही है? स्थिर स्थिर संरचना सदस्यों के लिए बहिष्कृत विशेषता का उपयोग करने का कोई तरीका है?
जीसीसी 4.9.3 इस चेतावनी को प्रतीत नहीं होता है।
एक बग की तरह दिखता है –
शायद एक कंपाइलर बग - जीसीसी "= 1" भाग से भ्रमित हो रहा है, और इसे उपयोग के रूप में व्याख्या करता है। –
@ एमएम: क्या आपने इसे 'क्लैंग ++' में आजमाया है? – Destructor