1. ホーム
  2. c++

[解決済み] C++は非推奨としてマーク

2022-04-25 05:57:45

質問

ポータブルC++で非推奨にしたいメソッドがインターフェイスにあります。 ググっても、マイクロソフト特有の解決策しか出てきません。 #pragma deprecated そして __declspec(deprecated) .

2等賞の解決策は、次のとおりです。 ifdef MSVCとGCCのソリューションです。

どのように解決するのですか?

C++14 では、関数を非推奨としてマークするには、次のようにします。 [[deprecated]] 属性があります (7.6.5 節 [dcl.attr.deprecated] を参照してください)。

属性トークン deprecated は、まだ使用が許可されているが、何らかの理由で使用が推奨されない名前と実体をマークするために使用できます。

例えば、以下のような機能です。 foo は非推奨です。

[[deprecated]]
void foo(int);

名前または実体が非推奨となった理由を説明するメッセージを提供することが可能である。

[[deprecated("Replaced by bar, which has an improved interface")]]
void foo(int);

メッセージは文字列リテラルでなければなりません。

詳しくは "C++14で非推奨とされるマーク" .