[C++-sig] IndexError when returning pointer
Marcelo A. Camelo
camelo at esss.com.br
Fri Apr 11 21:25:50 CEST 2003
Oops,
I've made a terrible mess on the sample code
I've sent on my last message. Sorry!!!
Here is the correct version:
struct foo
{
static foo* get_singleton() { return singleton; }
static foo* singleton;
};
foo* foo::singleton = NULL;
BOOST_PYTHON_MODULE( frog )
{
using namespace boost::python;
class_< foo, boost::noncopyable >( "foo", no_init )
.def( "get_singleton", (foo*(*)() )
&foo::get_singleton, return_internal_reference<>() )
.staticmethod( "get_singleton" )
;
}
>>> import frog
>>> a = frog.foo.get_singleton()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
IndexError: tuple index out of range
>>>
-----Original Message-----
From: c++-sig-admin at python.org [mailto:c++-sig-admin at python.org] On
Behalf Of Marcelo A. Camelo
Sent: sexta-feira, 11 de abril de 2003 16:11
To: c++-sig at python.org
Subject: [C++-sig] IndexError when returning pointer
Hi,
I'm exporting a singleton class:
struct foo
{
static foo* get_singleton() { return singleton; }
foo* singleton;
};
BOOST_PYTHON_MODULE( _frog )
{
class_< foo, boost::noncopyable >( "foo", no_init )
.def( "bar", (foo*(*)() ) &foo::bar,
return_internal_reference<>() )
.staticmethod( "bar" )
;
}
But, when I try to use it, I get:
>>> import _foo
>>> a = _frog.foo.get_singleton()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
IndexError: tuple index out of range
>>>
I couldn't figure out what I'm doing wrong.
Can anyone shed some light on this?
[]'s
Marcelo A. Camelo, M. Eng. - Project Leader
ESSS - Engineering Simulation and Scientific Software
E-mail: camelo at esss.com.br
Phone: +55-48-239-2226
_______________________________________________
C++-sig mailing list
C++-sig at python.org
http://mail.python.org/mailman/listinfo/c++-sig
More information about the Cplusplus-sig
mailing list