deprecated
pragma
memungkinkan deprecated
pragma Anda menunjukkan bahwa fungsi, jenis, atau pengidentifikasi lain mungkin tidak lagi didukung dalam rilis mendatang atau tidak boleh lagi digunakan.
Catatan
Untuk informasi tentang atribut C++14 [[deprecated]]
, dan panduan tentang kapan harus menggunakan atribut tersebut alih-alih pengubah Microsoft __declspec(deprecated)
atau deprecated
pragma, lihat Atribut di C++.
Sintaks
#pragma deprecated(
pengidentifikasi1 [,
pengidentifikasi2 ... ])
Keterangan
Ketika pengkompilasi menemukan pengidentifikasi yang ditentukan oleh deprecated
pragma, pengkompilasi mengeluarkan peringatan kompilator C4995.
Anda dapat menghentikan nama makro. Tempatkan nama makro dalam tanda kutip atau ekspansi makro lainnya akan terjadi.
deprecated
pragma Karena berfungsi pada semua pengidentifikasi yang cocok, dan tidak memperhitungkan tanda tangan, ini bukan opsi terbaik untuk menghentikan versi tertentu dari fungsi yang kelebihan beban. Setiap nama fungsi yang cocok yang dibawa ke dalam cakupan memicu peringatan.
Kami sarankan Anda menggunakan atribut C++14 [[deprecated]]
, jika memungkinkan, alih-alih deprecated
pragma. Pengubah deklarasi khusus __declspec(deprecated)
Microsoft juga merupakan pilihan yang lebih baik dalam banyak kasus daripada deprecated
pragma. Atribut [[deprecated]]
dan __declspec(deprecated)
pengubah memungkinkan Anda menentukan status yang tidak digunakan lagi untuk bentuk fungsi yang kelebihan beban tertentu. Peringatan diagnostik hanya muncul pada referensi ke fungsi kelebihan beban tertentu yang diterapkan atribut atau pengubah.
Contoh
// 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
}
Contoh berikut menunjukkan cara menghentikan kelas:
// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X { // C4995
public:
void f(){}
};
int main() {
X x; // C4995
}