How to: Use gcnew to Create Value Types and Use Implicit Boxing

 

For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.

Using gcnew on a value type will create a boxed value type, which can then be placed on the managed, garbage-collected heap.

// vcmcppv2_explicit_boxing4.cpp  
// compile with: /clr  
public value class V {  
public:  
   int m_i;  
   V(int i) : m_i(i) {}  
};  
  
public ref struct TC {  
   void do_test(V^ v) {  
      if (v != nullptr)  
         ;  
      else  
         ;  
   }  
};  
  
int main() {  
   V^ v = gcnew V(42);  
   TC^ tc = gcnew TC;  
   tc->do_test(v);  
}  

Boxing

Show: