¿Qué significa el símbolo de intercalación ('^') en C++/CLI?
Acabo de encontrar este código y algunas búsquedas en Google no arrojan ninguna explicación de esta sintaxis misteriosa (para mí).
Hashtable^ tempHash = gcnew Hashtable(iterators_);
IDictionaryEnumerator^ enumerator = tempHash->GetEnumerator();
¿Qué diablos significa el signo de intercalación? (Esto gcnew
también es nuevo para mí y lo pregunté aquí ).
Aceptado
Esto es C++/CLI y el símbolo de intercalación es el equivalente administrado de un * (puntero) que en la terminología de C++/CLI se denomina "identificador" de un "tipo de referencia" (ya que aún puede tener punteros no administrados).
(Gracias a Aardvark por señalar la mejor terminología).
// here normal pointer
P* ptr = new P; // usual pointer allocated on heap
P& nat = *ptr; // object on heap bind to native object
//.. here CLI managed
MO^ mngd = gcnew MO; // allocate on CLI heap
MO% rr = *mngd; // object on CLI heap reference to gc-lvalue
En general, el puntuador %
es to ^
como el puntuador &
es to *
. En C++ el &
operador unario está en C++/CLI el %
operador unario.
Mientras que &ptr
produce a P*
, %mngd
produce en MO^
.