[cairo] Re: cairo c++ bindings
Bill Spitzak
spitzak at d2.com
Mon Nov 28 13:53:36 PST 2005
Murray Cumming wrote:
> An if(somebool) will not add a significatn amount of run-time overhead.
> I'd be happy to add a Cairo::set_ignore_errors(bool) function.
Actually it will if the code is inlined, as it can add significant size
to the code and thus make things not fit in caches. A quick test reveals
that this triples the size of the inlined code (for a phony test with
one argument passed to the other function).
A more serious problem is that inlinining a single function call is an
obvious win in speed (no matter how tiny) and the same size in code. But
a function that has an if and a call, it is impossible to be certain
which is better. It would be preferrable that the C++ wrapper be
unquestionable for the majority of Cairo calls.
My preference would be for the C++ wrapper to not test anything or throw
any exceptions, and to just wrap the "test status" call like every other
Cairo interface. Calling code can do "if (cairo_c->error()) throw
exception;"
The ideas mentioned below for using templates to make a different class
that does throw exceptions may be a good idea, though, as long as the
header files are still readable.
More information about the cairo
mailing list