Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Functions can be overloaded depending on whether the parameter type is an interior pointer or a native pointer.
Example
Code
// interior_ptr_overload.cpp
// compile with: /clr
using namespace System;
// C++ class
struct S {
int i;
};
// managed class
ref struct G {
int i;
};
// can update unmanaged storage
void f( int* pi ) {
*pi = 10;
Console::WriteLine("in f( int* pi )");
}
// can update managed storage
void f( interior_ptr<int> pi ) {
*pi = 10;
Console::WriteLine("in f( interior_ptr<int> pi )");
}
int main() {
S *pS = new S; // C++ heap
G ^pG = gcnew G; // common language runtime heap
f( &pS->i );
f( &pG->i );
};
Output
in f( int* pi )
in f( interior_ptr<int> pi )