[C++-sig] Static, again...
Hugo van der Merwe
hugo at adept.co.za
Wed Nov 13 07:51:12 CET 2002
> Unfortunately, no. That would be cool, though, wouldn't it? I'm
> pretty sure you can do this after you define class_<Settings>, though:
>
> // Note no leading dot.
> def("Settings", &Settings::GetInstance
> , return_value_policy<reference_existing_object>());
>
> This will replace the class in the module by a function called
> Settings that gets the instance.
Yes, that worked beautifully! Now I just do (in Python):
Settings().detailThreshold = 10
Settings().verbose = true
Just found it hard to decide whether I should keep the Python wrapper
as close as possible to the C++ library and use "SetVerbose" and
"GetVerbose", or whether to use Boost.Python's really nifty
properties. Well, I couldn't resist! ;)
Do properties currently only handle straight forward single parameter
"setters"? How difficult would it be to allow it to do two parameters,
with e.g. "object.property[5] = 10"? (Or can it do that already?)
> I think that's right. However, I wonder if we should change the
> __init__ function that you get from no_init to be a no-op unless the
> Python class actually has the same type as the abstract base...
Sounds like an idea ...
Thanks again!
Hugo van der Merwe
More information about the Cplusplus-sig
mailing list