Disambiguates which function or operator triggered a shared callback.

ID: 486

				
					using uCalcSoftware;

var uc = new uCalc();

static void SharedCallback(uCalc.Callback cb) {
   Console.WriteLine($"Callback triggered by: {cb.Item.Name}");
}

// Define two different symbols that use the same callback
uc.DefineFunction("FuncA(x, y)", SharedCallback);
uc.DefineOperator("{x} OpB {y}", 100, Associativity.LeftToRight, SharedCallback);

// Call both symbols
uc.EvalStr("FuncA(1, 2)");
uc.EvalStr("1 OpB 2");

				
			
Callback triggered by: funca
Callback triggered by: opb
				
					#include <iostream>
#include "uCalc.h"

using namespace std;
using namespace uCalcSoftware;

void ucalc_call SharedCallback(uCalcBase::Callback cb) {
   cout << "Callback triggered by: " << cb.Item().Name() << endl;
}
int main() {
   uCalc uc;
   // Define two different symbols that use the same callback
   uc.DefineFunction("FuncA(x, y)", SharedCallback);
   uc.DefineOperator("{x} OpB {y}", 100, Associativity::LeftToRight, SharedCallback);

   // Call both symbols
   uc.EvalStr("FuncA(1, 2)");
   uc.EvalStr("1 OpB 2");

}
				
			
Callback triggered by: funca
Callback triggered by: opb
				
					Imports System
Imports uCalcSoftware
Public Module Program
   
   Public Sub SharedCallback(ByVal cb As uCalc.Callback)
      Console.WriteLine($"Callback triggered by: {cb.Item.Name}")
   End Sub
   Public Sub Main()
      Dim uc As New uCalc()
      '// Define two different symbols that use the same callback
      uc.DefineFunction("FuncA(x, y)", AddressOf SharedCallback)
      uc.DefineOperator("{x} OpB {y}", 100, Associativity.LeftToRight, AddressOf SharedCallback)
      
      '// Call both symbols
      uc.EvalStr("FuncA(1, 2)")
      uc.EvalStr("1 OpB 2")
      
   End Sub
End Module
				
			
Callback triggered by: funca
Callback triggered by: opb