Wie markiere ich etwas in Qt als veraltet (veraltet)?

8

Gibt es Q_OBSOLETE oder Q_DEPRECATED in C ++ mit Qt 4.7?

Oder gibt es ein ähnliches C ++ Makro oder Schlüsselwort?

    
Ivelin Nikolaev 14.11.2010, 20:56
quelle

5 Antworten

-2

Mit "veraltete Konstrukte" meinen Sie eigentlich "veraltete Mitgliederfunktionen". Sie fragen nach einer Kompilierungswarnung, um Ihre Aufmerksamkeit auf die Aufrufseite einer veralteten Funktion zu lenken.

Dies ist in Standard C ++ nicht in irgendeiner vernünftigen Weise möglich, und ich sehe keine Attribute in G ++, die dies unterstützen würden. Qt kann ein solches Feature nicht wirklich hinzufügen, wenn der Compiler noch keine Unterstützung dafür hat.

Microsoft Visual C ++ unterstützt jedoch eine Erweiterung __declspec(deprecated) und ich würde mir vorstellen, dass es möglich ist, ein Compiler-Plugin für G ++ 4.5 zu schreiben, das ein ähnliches Feature hinzufügt.

    
Ken Bloom 15.11.2010, 05:10
quelle
31

Wenn Sie Q_DECL_DEPRECATED verwenden, sollten Sie das Ergebnis erhalten, nach dem Sie suchen, z. B .:

%Vor%     
Tim Sutton 03.04.2012 21:53
quelle
1
  1. Ziehen Sie die reale Funktion aus dem öffentlichen Bereich heraus.
  2. Erstellen Sie eine weitere Funktion mit demselben Namen im öffentlichen Bereich.
  3. Fügen Sie Ihren Warn- / Fehlercode in diese Funktion ein.
  4. Rufen Sie das Original mit dem neuen an.
Crazy Eddie 15.11.2010 17:23
quelle
1

Benutze einfach das

%Vor%

Richtlinie

Obwohl es nicht der C ++ - Standard ist, ist es ziemlich unwahrscheinlich, dass Sie auf einen Compiler stoßen, der das nicht unterstützt ( Siehe diese SO Frage ).

    
fabrizioM 15.11.2010 04:24
quelle
0

Vielleicht möchten Sie selbst etwas ähnliches tun:

%Vor%

Diese Konstruktion ersetzt einfach einen veralteten Code / Teil des Codes, wenn Q_TREAT_OBSOLETE_AS_ERRORS nicht definiert ist und generiert sonst einen Fehler bei der Kompilierung.

Beachten Sie, dass BOOST_STATIC_ASSERT keine Bereichsbeschränkungen hat, ebenso das Makro Q_OBSOLETE .

Wahrscheinlich ist dies nicht der beste Weg, um Ihr Problem zu lösen, und ich bin mir nicht sicher, ob das nützlich ist.

Sie können den Code einfach als @obsolete markieren oder einfach in den Kommentaren darauf hinweisen.

    
Yippie-Ki-Yay 14.11.2010 21:49
quelle

Tags und Links