Hello extension interfacers,

I'm doing bindings for a C++ library,
and I have many problems/questions, of which this is one.

I've tried following the docs for "The OVERLOAD: Keyword"
in `perldoc perlxs`; however, I don't really understand
the syntax for it:

           SV *
           cmp (lobj, robj, swap)
           My_Module_obj    lobj
           My_Module_obj    robj
           IV               swap
           OVERLOAD: cmp <=>
           { /* function defined here */}

I always get weird errors suggesting a parsing problem.
Here's a final bizarre attempt to mimic the above:

  bool
  cmp(lobj, robj, swap)
      Vector3 * lobj
      Vector3 * robj
      IV        swap
    OVERLOAD: ==
    {
      RETVAL = (*lobj == *robj);
    }

Before that I'd tried also with

  Vector3::cmp(lobj, robj, swap)

and without the curly braces but with CODE and OUTPUT blocks.

I ended up just making an `eq_xs' function and using
that with `use overload' from the Perl module,
but for no particular reason I think I'd prefer
to do it all from XS if possible.

Reply via email to