Boost logo

Boost :

From: Gary Powell (Gary.Powell_at_[hidden])
Date: 2000-10-09 15:47:27


Hi,

 A couple of minor comments.

File : subclass.cpp
fn enable_special_methods(..)
  the second for loop, has is_prefex(..., name + 2) done for each iteration
of the loop, this should be done once outside the loop after the test for
"!is_special_name(name)" While a good compiler should move this code, why
not just do it since that's what you mean anyway.

  same comment for enable_named_method

I may be confused here but it looks like there is a problem in
Instance::getattr, where it is declared to return a PyObject *, yet can
return a new BoundFunction(); if BoundFunction returns a Ptr and you call
new on it, is it correctly converted to a PyObject *?, wouldn't it be better
to call
   return BoundFunction(blah blah).release(); ?
I'm not a big user of auto_ptr<> yet so there may be an idiom I'm missing
here.

perhaps a comment in the code would clear this up for future maintainers.

Namespaces: The one used is "py" and "py::detail" should these become
"boost" and "boost::detail::py" ? And the code within "detail" moved to a
subdirectory "detail"?

 If and when py_c++ becomes part of the standard, won't we have a problem
with the class names "String" and "Tuple" (I'm assuming that Jaakko Jarvi's
Tuple will also make the grade.) Also on general principles I object to
naming a class "Object" How about "PyPtrObject" that's what this one is.
(also "Dict" -> "PyPtrDictionary" ?)

  Otherwise a fine job.

  Yours,
 -Gary-

gary.powell_at_[hidden]


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk