オープンソースのソースを閲覧すると、私はC++ヘッダsal.h
を遭遇し、と似ていると思われる[source_annotation_attribute(SA(Method))]
というコード行が見つかりました。 sal.h
にはないので、今C++ source_annotation_attribute
、私はC#であるとして、一般的に、C++でno user defined attributesがあることを知っている、と私の最初の推測では[source_annotation_attribute(SA(Method))]
は単なるマクロであるということでしたが、それはsal.h
中にも、任意の他のヘッダで定義されていないもされていません#include
any。
次は、[source_annotation_attribute]
が実際には例えばMSVCのようにMSVCに組み込まれているということです。 [[noreturn]]
属性。
コンパイラに組み込まれていない場合、誰かが実際に何かを明らかにして、それと似た独自の属性を宣言できればうれしいです。 あなたの自己を見たい場合、特定のファイルは\Source\externalapis\legacy\vctools\vc12\inc\vc\sal.h
であり、属性は(とりわけ)1934
で発生します。ここで
はsal.h
での使用の例である:
[source_annotation_attribute(SA(Method))]
struct __M_
{
#ifdef __cplusplus // [
__M_();
#endif // ]
int __d_;
};
typedef struct __M_ __M_;
事前に感謝します。
@VTT使用法の例を追加しましたが、それがC++/Cliかどうかはわかりません。もちろん可能性はありますが、C++/Cliの属性は、 'sal.hの中のものとは違って使われているようです(https://msdn.microsoft.com/en-us/library/yd21828z.aspx) '。 –
このテキストが存在するブロックをチェックする必要があります。それは '_MSC_EXTENSIONS'と' _PFT_VER'を持っているので、明らかに普通のC++ではありません。おそらく特別なコンパイラのパス中に使われることを意図しています。 – VTT
@VTTありがとう、私はこれが答えだと信じています。だから私は第2の推測でより適切でした。それはコンパイラに組み込まれている、あまりにも悪いことです。あなたの努力に感謝。 –