| # Operator overloading example | |
| catch { load ./example[info sharedlibextension] Example} | |
| set a [Complex -args 2 3] | |
| set b [Complex -args -5 10] | |
| puts "a = $a [$a str]" | |
| puts "b = $b [$b str]" | |
| set c [$a + $b] | |
| puts "c = $c [$c str]" | |
| set d [$a * $b] | |
| puts "a*b = [$d str]" | |
| # Alternative calling convention | |
| set e [Complex_- $a $c] | |
| puts "a-c = [Complex_str $e]" | |
| set f [new_ComplexCopy $e] | |
| puts "f = [$f str]" | |
| # Call assignment operator | |
| $c = $f | |
| puts "c = [$c str]" | |