[C++-sig] non-const arguments

David Abrahams dave at boost-consulting.com
Tue Aug 6 23:54:11 CEST 2002


What is the definition of Integer?

if it's

    typedef X Integer;

Where X is some builtin numeric type, well of course you can't publish that
interface in Python. All of the builtin numeric types are immutable.

Decide on a Python interface that's consistent with Python's immutability
restrictions, and we can see how to wrap it.

Perhaps

    tuple ran1(Integer x)

would work better for you?

-----------------------------------------------------------
           David Abrahams * Boost Consulting
dave at boost-consulting.com * http://www.boost-consulting.com


----- Original Message -----
From: "Enrico Ng" <enrico at fnal.gov>
To: <c++-sig at python.org>
Sent: Tuesday, August 06, 2002 5:41 PM
Subject: [C++-sig] non-const arguments


> I am new to boost and am attepting to use V2.
>
> I get the "TypeError: bad argument type for built-in operation" error
> message from python.  It seems that since the variable "idum" is not
> const and changes, python can't handle it.
>
> I have looked around your documentation and the copy_non_cost_reference
> class seems close to what I need but I am not sure.
>
> Here is some of the relavent code:
>
> class MathLib {
>   public:
>   static Real ran1(Integer &idum);   <- idum is modified
> };
>
> ==============================================
>
> #include <boost/python/class.hpp>
> #include <boost/python/module.hpp>
>
> namespace python = boost::python;
>
> BOOST_PYTHON_MODULE_INIT(mathlib)
> {
>    python::module("mathlib")
>    .def("ran1", &MathLib::ran1)
>    ;
> }
>
>
> _______________________________________________
> 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