deprecated
pragma
Met de deprecated
pragma kunt u aangeven dat een functie, type of een andere id niet meer wordt ondersteund in een toekomstige release of niet meer mag worden gebruikt.
Notitie
Zie kenmerken in C++voor informatie over het kenmerk C++14 [[deprecated]]
en richtlijnen voor het gebruik van dat kenmerk in plaats van de Microsoft __declspec(deprecated)
modifier of de deprecated
pragma.
Syntaxis
#pragma deprecated(
id1 [,
id2 ... ])
Opmerkingen
Wanneer de compiler een id tegenkomt die is opgegeven door een deprecated
pragma, geeft het compilerwaarschuwing C4995-uit.
U kunt macronamen verwijderen. Plaats de macronaam tussen aanhalingstekens of andere macro-uitbreidingen.
Omdat de deprecated
pragma werkt op alle overeenkomende id's en geen rekening houdt met handtekeningen, is het niet de beste optie voor het uitschakelen van specifieke versies van overbelaste functies. Elke overeenkomende functienaam die in het bereik wordt gebracht, activeert de waarschuwing.
U wordt aangeraden het kenmerk C++14 [[deprecated]]
te gebruiken, indien mogelijk, in plaats van de deprecated
pragma. De microsoft-specifieke __declspec(deprecated)
verklaringsmodifier is in veel gevallen ook een betere keuze dan de deprecated
pragma. Met het kenmerk [[deprecated]]
en __declspec(deprecated)
kunt u de afgeschafte status opgeven voor bepaalde vormen van overbelaste functies. De diagnostische waarschuwing wordt alleen weergegeven bij verwijzingen naar de specifieke overbelaste functie waarop het kenmerk of de wijzigingsfunctie van toepassing is.
Voorbeeld
// pragma_directive_deprecated.cpp
// compile with: /W3
#include <stdio.h>
void func1(void) {
}
void func2(void) {
}
int main() {
func1();
func2();
#pragma deprecated(func1, func2)
func1(); // C4995
func2(); // C4995
}
In het volgende voorbeeld ziet u hoe u een klasse kunt verwijderen:
// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X { // C4995
public:
void f(){}
};
int main() {
X x; // C4995
}