2012-07-12 9 views
19

これを検索しましたが、役に立たない結果が出ました。C++で_In_とは何ですか?

私は現在、Windows 8 Metro用の簡単なDirextXゲームをプログラムしようとしており、_In_がかなり出回っています。私はそれが何であるか不思議です。

また、^の多くを、私が奇妙に見いだしたポインタ*として見ました。これに加えて、いくつかのクラスはref class MyClassのインタフェースを持っています。これはC#の読みやすさのためのものです。

とにかく、どんな助けも素晴らしいでしょう。

+4

'SomeType ^'はC++/CLI管理ポインタです。それはC++ではありません。 – chris

+8

これらはどちらも実際にはC++ではありません。彼らはC + +/CLIまたはおそらくC + +/CX(または、おそらく古い "マネージC + +")です。数年に1度、マイクロソフトはC++に基づいた新しい言語を発明しましたが、管理された環境(.NET)の拡張機能を備えています。これまでのところ、これらのどれも(それを軽く置く)多くの人気を得ていません。 –

+1

これは関連している可能性があります:[__inの代わりに_In_を使用する必要がありますか?](http://stackoverflow.com/questions/4093053/should-we-use-in-instead-of-in) –

答えて

24

コード解析に使用されるSAL annotationです。アノテーション自体は、通常のビルドでは何も展開しないマクロとして定義されています。

^およびref classは、C++でWindows 8用のMetroスタイルアプリを簡単に作成できるようにするために開発された言語拡張機能のセットであるC++/CXの機能です。どちらも標準C++の一部ではありません。以前にリンクされたドキュメントには、言語拡張を説明するチュートリアルやリファレンスへのリンクがあります。

+0

完璧な答えは、本当にそれを感謝します。 –

0

_in_は、パラメータが機能/メソッドの入力または出力(_out_)であるかどうかを示すためにあると思います。

^は、マネージドポインタ(ガベージコレクトされたポインタ、C++/CLIに関連する)です。

+1

ハ、私は ''ではなく、 ''であると思った。これは確かにMicrosoftの目的です。 – chris

+2

この場合ではありません。 '^'はC++/CXスマートポインタをマークします。 – Puppy

+0

@DeadMG、ありがとう、C + +/CXを調べます。 – Max

0

_Out_は、引数が参照として渡されることを意味します。 _In_は反対を意味します。 (_Out_ x)および(&x)は類似しています。

関連する問題