Was ist _In_ in C++?

Lesezeit: 2 Minuten

Benutzeravatar von Infinity James
Infinity James

Ich habe das schon ziemlich oft recherchiert, bin aber zu keinem hilfreichen Ergebnis gekommen.

Ich versuche gerade, ein einfaches DirextX-Spiel für Windows 8 Metro zu programmieren, und bin darauf gestoßen _In_ eher viel. Ich frage mich nur, was es ist.

Außerdem habe ich viel von der Verwendung gesehen ^ als Zeiger * was ich seltsam fand. Darüber hinaus haben einige Klassen eine Schnittstelle von ref class MyClasswas meiner Meinung nach für die Lesbarkeit von C # ist.

Wie auch immer, jede Hilfe wäre brillant.

  • SomeType^ ist ein von C++/CLI verwalteter Zeiger. Das ist nicht C++.

    – Chris

    12. Juli 2012 um 17:33 Uhr


  • Keines davon ist wirklich C++. Sie sind C++/CLI oder vielleicht C++/CX (oder möglicherweise das ältere „Managed C++“). Alle paar Jahre erfindet Microsoft eine neue Sprache basierend auf C++, aber mit Erweiterungen für ihre „verwaltete“ Umgebung (.NET). Bisher hat keines davon viel Popularität erlangt (um es milde auszudrücken).

    – Jerry Sarg

    12. Juli 2012 um 17:34 Uhr


  • Dies könnte verwandt sein: Sollten wir verwenden Im statt __in?

    – Desmond Hume

    12. Juli 2012 um 17:34 Uhr

  • Da er Metro erwähnt, würde ich sagen, dass das Teil von C++/CX für WinRT ist…

    – MFH

    12. Juli 2012 um 18:49 Uhr

  • ^ ist nicht ein Zeiger.

    – IS4

    21. März 2017 um 21:42 Uhr

Benutzeravatar von James McNellis
James McNellis

Es ist ein SAL-Anmerkung, verwendet für die Codeanalyse. Die Anmerkungen selbst sind als Makros definiert, die in normalen Builds zu nichts erweitert werden.

Das ^ und ref class sind Merkmale von C++/CX, eine Reihe von Spracherweiterungen, die entwickelt wurden, um das Erstellen von Apps im Metro-Stil für Windows 8 in C++ zu vereinfachen. Beides ist kein Bestandteil von Standard-C++. Die Dokumentation (zuvor verlinkt) enthält Links zu Tutorials und Referenzen, die die Spracherweiterungen beschreiben.

  • Perfekte Antwort, wirklich zu schätzen.

    – Infinity James

    13. Juli 2012 um 11:56 Uhr

Benutzeravatar von Max
max

Ich denke (von einem schnellen Google), dass die _in_ gibt an, ob ein Parameter ein Ein- oder Ausgang ist (_out_) zu einer Funktion/Methode.

Das ^ ist ein verwalteter Zeiger (Garbage Collection Pointer, bezogen auf C++/CLI).

  • Ha, ich dachte, das sagte lnnicht in. Das ist in der Tat der Zweck von Microsoft.

    – Chris

    12. Juli 2012 um 17:35 Uhr

  • @DeadMG Eigentlich, es ist eine Referenz handhaben, nicht ein Zeiger.

    – Cole Tobin

    18. Februar 2013 um 2:07 Uhr


Im sal.h file o hat diese Definition gefunden

// Input parameters --------------------------

//   _In_ - Annotations for parameters where data is passed into the function, but not modified.
//          _In_ by itself can be used with non-pointer types (although it is redundant).

// e.g. void SetPoint( _In_ const POINT* pPT );
#define _In_                            _SAL2_Source_(_In_, (), _Pre1_impl_(__notnull_impl_notref) _Pre_valid_impl_ _Deref_pre1_impl_(__readaccess_impl_notref))
#define _In_opt_                        _SAL2_Source_(_In_opt_, (), _Pre1_impl_(__maybenull_impl_notref) _Pre_valid_impl_ _Deref_pre_readonly_)

Benutzeravatar von Diptendu
Diptendu

_Out_ bedeutet als Referenz übergebenes Argument. _In_ bedeutet das Gegenteil. (_Out_ x) und (&x) sind ähnlich.

1386710cookie-checkWas ist _In_ in C++?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy