use strict; use warnings; use Test::More tests => 24; BEGIN { use_ok('overload_null') } require_ok('overload_null'); my $o = new overload_null::Overload(); my $x = new overload_null::X(); is(1, $o->byval1($x)); is(2, $o->byval1(undef)); is(3, $o->byval2(undef)); is(4, $o->byval2($x)); is(5, $o->byref1($x)); is(6, $o->byref1(undef)); is(7, $o->byref2(undef)); is(8, $o->byref2($x)); is(9, $o->byconstref1($x)); is(10, $o->byconstref1(undef)); is(11, $o->byconstref2(undef)); is(12, $o->byconstref2($x)); # const pointer references is(13, $o->byval1cpr($x)); is(14, $o->byval1cpr(undef)); is(15, $o->byval2cpr(undef)); is(16, $o->byval2cpr($x)); # fwd class declaration is(17, $o->byval1fwdptr($x)); is(18, $o->byval1fwdptr(undef)); is(19, $o->byval2fwdptr(undef)); is(20, $o->byval2fwdptr($x)); is(21, $o->byval1fwdref($x)); is(22, $o->byval2fwdref($x));