Aracılığıyla paylaş


deprecated (C++)

Bu konu, Microsoft'a özgü kullanım dışı bırakılan declspec bildirimi hakkındadır. C++14 [[deprecated]] özniteliği hakkında bilgi ve bu özniteliğin microsoft'a özgü declspec veya pragma ile ne zaman kullanılacağına ilişkin yönergeler için bkz . C++ Standart Öznitelikleri.

Aşağıda belirtilen özel durumlarla bildirim, deprecated kullanım dışı bırakılan pragma ile aynı işlevselliği sunar:

  • bildirimi deprecated , işlev aşırı yüklemelerinin belirli biçimlerini kullanım dışı olarak belirtmenize olanak tanırken, pragma formu bir işlev adının aşırı yüklenmiş tüm formlarına uygulanır.

  • Bildirim, deprecated derleme zamanında görüntülenecek bir ileti belirtmenize olanak tanır. İletinin metni bir makrodan olabilir.

  • Makrolar yalnızca pragma ile deprecated kullanım dışı olarak işaretlenebilir.

Derleyici kullanım dışı bir tanımlayıcı veya standart [[deprecated]] özniteliğin kullanımıyla karşılaşırsa, bir C4996 uyarısı oluşturulur.

Örnekler

Aşağıdaki örnekte işlevlerin kullanım dışı olarak işaretleneceği ve kullanım dışı bırakılan işlev kullanıldığında derleme zamanında görüntülenecek bir iletinin nasıl belirtileceği gösterilmektedir.

// deprecated.cpp
// compile with: /W3
#define MY_TEXT "function is deprecated"
void func1(void) {}
__declspec(deprecated) void func1(int) {}
__declspec(deprecated("** this is a deprecated function **")) void func2(int) {}
__declspec(deprecated(MY_TEXT)) void func3(int) {}

int main() {
   func1();
   func1(1);   // C4996
   func2(1);   // C4996
   func3(1);   // C4996
}

Aşağıdaki örnekte sınıfların kullanım dışı olarak nasıl işaretleneceği ve kullanım dışı bırakılan sınıf kullanıldığında derleme zamanında görüntülenecek bir iletinin nasıl belirtileceği gösterilmektedir.

// deprecate_class.cpp
// compile with: /W3
struct __declspec(deprecated) X {
   void f(){}
};

struct __declspec(deprecated("** X2 is deprecated **")) X2 {
   void f(){}
};

int main() {
   X x;   // C4996
   X2 x2;   // C4996
}

Ayrıca bkz.

__declspec
Anahtar Sözcükler