2017-07-10 2 views
-2

ich mein Programm aktualisiert = C++ 11 bis --std und jetzt erhalte ich:Fehler: ‚veraltet‘ wurde nicht in diesem Bereich erklärt

g++ --std=c++11 -c eqc.cpp 
In file included from eqc.cpp:16:0: 
eqc.h:372:80: error: ‘deprecated’ was not declared in this scope 
eqc.h:372:92: error: expected ‘)’ before ‘;’ token 
eqc.h:372:92: error: expected ‘)’ before ‘;’ token 
In file included from eqc.cpp:16:0: 
eqc.h:372:74: error: expected unqualified-id before ‘)’ token 
equation &operator[](const std::string &label) __attribute__((deprecated)); 

Wenn ich die neue Art der Angabe Attribute verwenden, ist es das selbe:

Da ich im Web nichts über diesen Fehler finden kann, muss ich einen dummen Fehler machen. Aber welches?

Das System ist Ubuntu 16.04 und der Compiler: g ++ (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.4) 5.4.0 20160609

+1

std = Gnu Versuchen ++ 11 –

+1

[MCVE] bitte. Das Problem ist [nicht reproduzierbar] (http://ideone.com/hpy0N9). –

+0

Rechts. Das minimale Beispiel hat mir geholfen, das Problem zu finden. In einer GiNaC-Include-Datei (compiler.h) heißt es: '#define veraltet __attribute__ ((veraltet)); ' und offensichtlich bricht dies alle zukünftigen Verwendungen von veraltet ab. – jrheinlaender

Antwort

1

Das Problem war, eine Bibliothek (libginac6 1.7.0), daß der

#define deprecated attribute ((deprecated)); 

nach Aktualisieren der Bibliothek (Version> = 1.7.1) verschwand der Fehler, da jetzt die Bibliothek sagt

#define attribute_deprecated attribute ((deprecated)); 
Verwandte Themen