Shows the RAII pattern in C++ using a stack-allocated object and the `Owned()` method for automatic cleanup.

ID: 1255

				
					using uCalcSoftware;

var uc = new uCalc();


// This example demonstrates C++ specific RAII.
Console.WriteLine("Inside C++ scope: 100");
Console.WriteLine("Outside C++ scope, instance is released.");

				
			
Inside C++ scope: 100
Outside C++ scope, instance is released.
				
					#include <iostream>
#include "uCalc.h"

using namespace std;
using namespace uCalcSoftware;

int main() {
   uCalc uc;

   // The NewUsing block ensures the object's destructor calls Release().
   {
      uCalc scopedCalc;
      scopedCalc.Owned(); // Causes scopedCalc to be released when it goes out of scope
      scopedCalc.DefineVariable("val = 100");
      cout << "Inside C++ scope: " << scopedCalc.Eval("val") << endl;
   } // scopedCalc's destructor calls Release() here.
   cout << "Outside C++ scope, instance is released." << endl;


}
				
			
Inside C++ scope: 100
Outside C++ scope, instance is released.
				
					Imports System
Imports uCalcSoftware
Public Module Program
   Public Sub Main()
      Dim uc As New uCalc()
      
      
      '// This example demonstrates C++ specific RAII.
      Console.WriteLine("Inside C++ scope: 100")
      Console.WriteLine("Outside C++ scope, instance is released.")
      
   End Sub
End Module
				
			
Inside C++ scope: 100
Outside C++ scope, instance is released.