deprecated
pragma
Umožňuje deprecated
pragma označit, že funkce, typ nebo jakýkoli jiný identifikátor již nemusí být v budoucí verzi podporována nebo již by se neměla používat.
Poznámka:
Informace o atributu C++14 [[deprecated]]
a pokyny k použití tohoto atributu místo modifikátoru Společnosti Microsoft __declspec(deprecated)
nebo atributu deprecated
pragmanaleznete v tématu Atributy v jazyce C++.
Syntaxe
#pragma deprecated(
identifikátor1 [,
identifikátor2 ... ])
Poznámky
Když kompilátor narazí na identifikátor určený parametrem deprecated
pragma, vydá upozornění kompilátoru C4995.
Názvy maker lze označit jako zastaralé. Umístěte název makra do uvozovek, jinak dojde k rozšíření makra.
deprecated
pragma Vzhledem k tomu, že funguje na všech odpovídajících identifikátorech a nepřihlíží k podpisům, není nejlepší volbou pro vyřazení konkrétních verzí přetížených funkcí. Všechny odpovídající názvy funkcí, které se přenesou do oboru, aktivují upozornění.
Pokud je to možné, místo atributu deprecated
pragmaC++14 doporučujeme použít atribut C++14[[deprecated]]
. Modifikátor deklarace specifické pro __declspec(deprecated)
Společnost Microsoft je také lepší volbou v mnoha případech než .deprecated
pragma Atribut [[deprecated]]
a __declspec(deprecated)
modifikátor umožňují určit zastaralý stav pro konkrétní formy přetížených funkcí. Diagnostické upozornění se zobrazí pouze u odkazů na konkrétní přetíženou funkci, na které se atribut nebo modifikátor vztahuje.
Příklad
// 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
}
Následující příklad ukazuje, jakým způsobem označit třídu jako zastaralou:
// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X { // C4995
public:
void f(){}
};
int main() {
X x; // C4995
}