[C++-sig] Static Methods - correction

Francois Ostiguy ostiguy at fnal.gov
Mon Nov 4 21:05:45 CET 2002


There was a mix-up in my previous message. Once again, I have been
trying, without success, to expose a static member of a class
(Ring::initNodes()).

The python output is as follows:

Python 2.2.2 (#1, Oct 28 2002, 17:04:52)
[GCC 3.1.1] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> from orbit import *
>>> a = Ring()
>>> a
<orbit.Ring object at 0x1638f0>
>>> a.initNodes()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: bad argument type for built-in operation
>>> Ring.initNodes()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: unbound method Boost.Python.function object must be called with
Ring instance as first argument (got nothing instead)


Ring::initNodes() is declared as a static member of the c++ class Ring.
I understand, based on Dave's comments  that  a.initNodes() will not
work.  I do not understand why the second form  Ring.initNodes() fails.
Is there a simple way to expose static member functions ?

Your help is greatly appreciated.


-Francois

----------------------------------------------------------------------------
Dr. Jean-Francois OSTIGUY                              voice: (630) 840-2231
Beam Physics Dept MS220                                  FAX: (630) 840-6039
Fermi National Accelerator Laboratory                email: ostiguy at fnal.gov
Batavia IL 60510-0500                           WWW:www-ap.fnal.gov/~ostiguy






More information about the Cplusplus-sig mailing list