set($base); $dh = new DoubleHolder(444.555); check::equal($caller->ValCall($dh)->val, $dh->val, "$bname.Val"); check::equal($caller->RefCall($dh)->val, $dh->val, "$bname.Ref"); check::equal($caller->PtrCall($dh)->val, $dh->val, "$bname.Ptr"); check::equal($caller->ConstPtrRefCall($dh)->val, $dh->val, "$bname.ConstPtrRef"); check::equal($caller->FullyOverloadedCall(1), "{$bname}::FullyOverloaded(int)", "$bname.FullyOverloaded(int)"); check::equal($caller->FullyOverloadedCall(false), "{$bname}::FullyOverloaded(bool)", "$bname.FullyOverloaded(bool)"); // This next one is TODO for Perl with PerlDerived. check::equal($caller->SemiOverloadedCall(-678), "{$bname}::SemiOverloaded(int)", "$bname.SemiOverloaded(int)"); check::equal($caller->SemiOverloadedCall(false), "Base::SemiOverloaded(bool)", "$bname.SemiOverloaded(bool)"); check::equal($caller->DefaultParmsCall(10, 2.2), "{$bname}::DefaultParms(int, double)", "$bname.DefaultParms(int, double)"); check::equal($caller->DefaultParmsCall(10), "{$bname}::DefaultParms(int)", "$bname.DefaultParms(int)"); $caller->reset(); } check::done();