const Class* [] trouble, const pointer

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

const Class* [] trouble, const pointer

James Bigler
Hello,

Thanks for the great package.  I've had quite a bit of success with it.

I'm using swig version 1.3.27 that I compiled from source on Ubuntu 5.10 (the
provided in the distro Segfaults ;)

I have a class, RayPacketData with some public data members that is an array of
pointers to const objects:

class RayPacketData {
public:
   Material const* hitMatl[];
};

The problem arises in the generated code:

/home/bigler/manta/vertical/opt/SwigInterface/manta_wrap.cxx: In function
'PyObject* _wrap_RayPacketData_hitMatl_set(PyObject*, PyObject*)'
/home/bigler/manta/vertical/opt/SwigInterface/manta_wrap.cxx:15385: error:
invalid static_cast from type 'Manta::Material**' to type 'const Manta::Material**'

------------------------------------------------------------------------------
static PyObject *_wrap_RayPacketData_hitMatl_set(PyObject *, PyObject *args) {
     PyObject *resultobj = NULL;
     Manta::RayPacketData *arg1 = (Manta::RayPacketData *) 0 ;
     Manta::Material **arg2 ;
     PyObject * obj0 = 0 ;
     PyObject * obj1 = 0 ;

     if(!PyArg_ParseTuple(args,(char
*)"OO:RayPacketData_hitMatl_set",&obj0,&obj1)) goto fail;
     SWIG_Python_ConvertPtr(obj0, (void **)&arg1,
SWIGTYPE_p_Manta__RayPacketData, SWIG_POINTER_EXCEPTION | 0);
     if (SWIG_arg_fail(1)) SWIG_fail;
     SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_p_Manta__Material,
SWIG_POINTER_EXCEPTION | 0);
     if (SWIG_arg_fail(2)) SWIG_fail;
     {

 >>>>>>>>>>>>>>>>>>>>  OFFENDING LINE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
         Manta::Material const * *inp = static_cast<Manta::Material const * *
 >(arg2);
 >>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
         if (inp) {
             Manta::Material const * *dest = static_cast<Manta::Material const *
* >(arg1->hitMatl);
             size_t ii = 0;
             for (; ii < Manta::RayPacketData::Size; ++ii) dest[ii] = inp[ii];
         } else {
             SWIG_null_ref("Manta::Material const *");
         }
     }
     Py_INCREF(Py_None); resultobj = Py_None;
     return resultobj;
     fail:
     return NULL;
}

----------------------------------------------------------------------------
This is in fact an error.  In a previous version of swig (1.3.21) it used a C
style cast instead of a static_cast and it compiled just fine (I don't know if
it worked OK, though).

         Manta::Material const * *b = (Manta::Material const * *) arg1->hitMatl;
         for (ii = 0; ii < Manta::RayPacketData::Size; ii++) b[ii] =
              *((Manta::Material const * *) arg2 + ii);

The problem with the new code is that arg2 is not a "Manta::Material const **".
  You can work around this by some typedefs.

class RayPacketData {
public:
   typedef Material const* MaterialCP;

   MaterialCP hitMatl[];
}

Now arg2 will be a "Manta::RayPacketData::MaterialCP*" or "Manta::Material const **"

-----------------------------------------------------------------------------
static PyObject *_wrap_RayPacketData_hitMatl_set(PyObject *, PyObject *args) {
     PyObject *resultobj = NULL;
     Manta::RayPacketData *arg1 = (Manta::RayPacketData *) 0 ;
     Manta::RayPacketData::MaterialCP *arg2 ;
     PyObject * obj0 = 0 ;
     PyObject * obj1 = 0 ;

     if(!PyArg_ParseTuple(args,(char
*)"OO:RayPacketData_hitMatl_set",&obj0,&obj1)) goto fail;
     SWIG_Python_ConvertPtr(obj0, (void **)&arg1,
SWIGTYPE_p_Manta__RayPacketData, SWIG_POINTER_EXCEPTION | 0);
     if (SWIG_arg_fail(1)) SWIG_fail;
     SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_p_Manta__Material,
SWIG_POINTER_EXCEPTION | 0);
     if (SWIG_arg_fail(2)) SWIG_fail;
     {
         Manta::RayPacketData::MaterialCP *inp =
static_cast<Manta::RayPacketData::MaterialCP * >(arg2);
         if (inp) {
             Manta::RayPacketData::MaterialCP *dest =
static_cast<Manta::RayPacketData::MaterialCP * >(arg1->hitMatl);
             size_t ii = 0;
             for (; ii < Manta::RayPacketData::Size; ++ii) dest[ii] = inp[ii];
         } else {
             SWIG_null_ref("Manta::RayPacketData::MaterialCP");
         }
     }
     Py_INCREF(Py_None); resultobj = Py_None;
     return resultobj;
     fail:
     return NULL;
}
----------------------------------------------------------------------------

I think the code generator should have made arg2 and "Manta::Material const**"
instead of "Manta::Material **".  Any thoughts?

Thanks,
James


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Swig-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/swig-user
Reply | Threaded
Open this post in threaded view
|

Re: const Class* [] trouble, const pointer

Marcelo Matus
In the meantime, run with

 swig -nocppcast ....

I'll take a look at the issue.

Marcelo


James Bigler wrote:

> Hello,
>
> Thanks for the great package.  I've had quite a bit of success with it.
>
> I'm using swig version 1.3.27 that I compiled from source on Ubuntu
> 5.10 (the provided in the distro Segfaults ;)
>
> I have a class, RayPacketData with some public data members that is an
> array of pointers to const objects:
>
> class RayPacketData {
> public:
>   Material const* hitMatl[];
> };
>
> The problem arises in the generated code:
>
> /home/bigler/manta/vertical/opt/SwigInterface/manta_wrap.cxx: In
> function 'PyObject* _wrap_RayPacketData_hitMatl_set(PyObject*,
> PyObject*)'
> /home/bigler/manta/vertical/opt/SwigInterface/manta_wrap.cxx:15385:
> error: invalid static_cast from type 'Manta::Material**' to type
> 'const Manta::Material**'
>
> ------------------------------------------------------------------------------
>
> static PyObject *_wrap_RayPacketData_hitMatl_set(PyObject *, PyObject
> *args) {
>     PyObject *resultobj = NULL;
>     Manta::RayPacketData *arg1 = (Manta::RayPacketData *) 0 ;
>     Manta::Material **arg2 ;
>     PyObject * obj0 = 0 ;
>     PyObject * obj1 = 0 ;
>
>     if(!PyArg_ParseTuple(args,(char
> *)"OO:RayPacketData_hitMatl_set",&obj0,&obj1)) goto fail;
>     SWIG_Python_ConvertPtr(obj0, (void **)&arg1,
> SWIGTYPE_p_Manta__RayPacketData, SWIG_POINTER_EXCEPTION | 0);
>     if (SWIG_arg_fail(1)) SWIG_fail;
>     SWIG_Python_ConvertPtr(obj1, (void **)&arg2,
> SWIGTYPE_p_p_Manta__Material, SWIG_POINTER_EXCEPTION | 0);
>     if (SWIG_arg_fail(2)) SWIG_fail;
>     {
>
> >>>>>>>>>>>>>>>>>>>>  OFFENDING LINE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>         Manta::Material const * *inp = static_cast<Manta::Material
> const * * >(arg2);
> >>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>         if (inp) {
>             Manta::Material const * *dest =
> static_cast<Manta::Material const * * >(arg1->hitMatl);
>             size_t ii = 0;
>             for (; ii < Manta::RayPacketData::Size; ++ii) dest[ii] =
> inp[ii];
>         } else {
>             SWIG_null_ref("Manta::Material const *");
>         }
>     }
>     Py_INCREF(Py_None); resultobj = Py_None;
>     return resultobj;
>     fail:
>     return NULL;
> }
>
> ----------------------------------------------------------------------------
>
> This is in fact an error.  In a previous version of swig (1.3.21) it
> used a C style cast instead of a static_cast and it compiled just fine
> (I don't know if it worked OK, though).
>
>         Manta::Material const * *b = (Manta::Material const * *)
> arg1->hitMatl;
>         for (ii = 0; ii < Manta::RayPacketData::Size; ii++) b[ii] =
>              *((Manta::Material const * *) arg2 + ii);
>
> The problem with the new code is that arg2 is not a "Manta::Material
> const **".  You can work around this by some typedefs.
>
> class RayPacketData {
> public:
>   typedef Material const* MaterialCP;
>
>   MaterialCP hitMatl[];
> }
>
> Now arg2 will be a "Manta::RayPacketData::MaterialCP*" or
> "Manta::Material const **"
>
> -----------------------------------------------------------------------------
>
> static PyObject *_wrap_RayPacketData_hitMatl_set(PyObject *, PyObject
> *args) {
>     PyObject *resultobj = NULL;
>     Manta::RayPacketData *arg1 = (Manta::RayPacketData *) 0 ;
>     Manta::RayPacketData::MaterialCP *arg2 ;
>     PyObject * obj0 = 0 ;
>     PyObject * obj1 = 0 ;
>
>     if(!PyArg_ParseTuple(args,(char
> *)"OO:RayPacketData_hitMatl_set",&obj0,&obj1)) goto fail;
>     SWIG_Python_ConvertPtr(obj0, (void **)&arg1,
> SWIGTYPE_p_Manta__RayPacketData, SWIG_POINTER_EXCEPTION | 0);
>     if (SWIG_arg_fail(1)) SWIG_fail;
>     SWIG_Python_ConvertPtr(obj1, (void **)&arg2,
> SWIGTYPE_p_p_Manta__Material, SWIG_POINTER_EXCEPTION | 0);
>     if (SWIG_arg_fail(2)) SWIG_fail;
>     {
>         Manta::RayPacketData::MaterialCP *inp =
> static_cast<Manta::RayPacketData::MaterialCP * >(arg2);
>         if (inp) {
>             Manta::RayPacketData::MaterialCP *dest =
> static_cast<Manta::RayPacketData::MaterialCP * >(arg1->hitMatl);
>             size_t ii = 0;
>             for (; ii < Manta::RayPacketData::Size; ++ii) dest[ii] =
> inp[ii];
>         } else {
>             SWIG_null_ref("Manta::RayPacketData::MaterialCP");
>         }
>     }
>     Py_INCREF(Py_None); resultobj = Py_None;
>     return resultobj;
>     fail:
>     return NULL;
> }
> ----------------------------------------------------------------------------
>
>
> I think the code generator should have made arg2 and "Manta::Material
> const**" instead of "Manta::Material **".  Any thoughts?
>
> Thanks,
> James
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc. Do you grep through log
> files
> for problems?  Stop!  Download the new AJAX search engine that makes
> searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
> http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
> _______________________________________________
> Swig-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/swig-user




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Swig-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/swig-user
Reply | Threaded
Open this post in threaded view
|

Re: const Class* [] trouble, const pointer

Marcelo Matus
In reply to this post by James Bigler
Could you please prepare a small example, like array_test.i or so, that
contains a minimal version of your interfaces and still reproduce the
problem?

We need this since I see things like ' Manta::RayPacketData::Size' and a for
loop which suggest  you are using a special typemap from the swig library,
and is hard to figure out which one (and how) are you using.

Marcelo

James Bigler wrote:

> Hello,
>
> Thanks for the great package.  I've had quite a bit of success with it.
>
> I'm using swig version 1.3.27 that I compiled from source on Ubuntu
> 5.10 (the provided in the distro Segfaults ;)
>
> I have a class, RayPacketData with some public data members that is an
> array of pointers to const objects:
>
> class RayPacketData {
> public:
>   Material const* hitMatl[];
> };
>
> The problem arises in the generated code:
>
> /home/bigler/manta/vertical/opt/SwigInterface/manta_wrap.cxx: In
> function 'PyObject* _wrap_RayPacketData_hitMatl_set(PyObject*,
> PyObject*)'
> /home/bigler/manta/vertical/opt/SwigInterface/manta_wrap.cxx:15385:
> error: invalid static_cast from type 'Manta::Material**' to type
> 'const Manta::Material**'
>
> ------------------------------------------------------------------------------
>
> static PyObject *_wrap_RayPacketData_hitMatl_set(PyObject *, PyObject
> *args) {
>     PyObject *resultobj = NULL;
>     Manta::RayPacketData *arg1 = (Manta::RayPacketData *) 0 ;
>     Manta::Material **arg2 ;
>     PyObject * obj0 = 0 ;
>     PyObject * obj1 = 0 ;
>
>     if(!PyArg_ParseTuple(args,(char
> *)"OO:RayPacketData_hitMatl_set",&obj0,&obj1)) goto fail;
>     SWIG_Python_ConvertPtr(obj0, (void **)&arg1,
> SWIGTYPE_p_Manta__RayPacketData, SWIG_POINTER_EXCEPTION | 0);
>     if (SWIG_arg_fail(1)) SWIG_fail;
>     SWIG_Python_ConvertPtr(obj1, (void **)&arg2,
> SWIGTYPE_p_p_Manta__Material, SWIG_POINTER_EXCEPTION | 0);
>     if (SWIG_arg_fail(2)) SWIG_fail;
>     {
>
> >>>>>>>>>>>>>>>>>>>>  OFFENDING LINE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>         Manta::Material const * *inp = static_cast<Manta::Material
> const * * >(arg2);
> >>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>         if (inp) {
>             Manta::Material const * *dest =
> static_cast<Manta::Material const * * >(arg1->hitMatl);
>             size_t ii = 0;
>             for (; ii < Manta::RayPacketData::Size; ++ii) dest[ii] =
> inp[ii];
>         } else {
>             SWIG_null_ref("Manta::Material const *");
>         }
>     }
>     Py_INCREF(Py_None); resultobj = Py_None;
>     return resultobj;
>     fail:
>     return NULL;
> }
>
> ----------------------------------------------------------------------------
>
> This is in fact an error.  In a previous version of swig (1.3.21) it
> used a C style cast instead of a static_cast and it compiled just fine
> (I don't know if it worked OK, though).
>
>         Manta::Material const * *b = (Manta::Material const * *)
> arg1->hitMatl;
>         for (ii = 0; ii < Manta::RayPacketData::Size; ii++) b[ii] =
>              *((Manta::Material const * *) arg2 + ii);
>
> The problem with the new code is that arg2 is not a "Manta::Material
> const **".  You can work around this by some typedefs.
>
> class RayPacketData {
> public:
>   typedef Material const* MaterialCP;
>
>   MaterialCP hitMatl[];
> }
>
> Now arg2 will be a "Manta::RayPacketData::MaterialCP*" or
> "Manta::Material const **"
>
> -----------------------------------------------------------------------------
>
> static PyObject *_wrap_RayPacketData_hitMatl_set(PyObject *, PyObject
> *args) {
>     PyObject *resultobj = NULL;
>     Manta::RayPacketData *arg1 = (Manta::RayPacketData *) 0 ;
>     Manta::RayPacketData::MaterialCP *arg2 ;
>     PyObject * obj0 = 0 ;
>     PyObject * obj1 = 0 ;
>
>     if(!PyArg_ParseTuple(args,(char
> *)"OO:RayPacketData_hitMatl_set",&obj0,&obj1)) goto fail;
>     SWIG_Python_ConvertPtr(obj0, (void **)&arg1,
> SWIGTYPE_p_Manta__RayPacketData, SWIG_POINTER_EXCEPTION | 0);
>     if (SWIG_arg_fail(1)) SWIG_fail;
>     SWIG_Python_ConvertPtr(obj1, (void **)&arg2,
> SWIGTYPE_p_p_Manta__Material, SWIG_POINTER_EXCEPTION | 0);
>     if (SWIG_arg_fail(2)) SWIG_fail;
>     {
>         Manta::RayPacketData::MaterialCP *inp =
> static_cast<Manta::RayPacketData::MaterialCP * >(arg2);
>         if (inp) {
>             Manta::RayPacketData::MaterialCP *dest =
> static_cast<Manta::RayPacketData::MaterialCP * >(arg1->hitMatl);
>             size_t ii = 0;
>             for (; ii < Manta::RayPacketData::Size; ++ii) dest[ii] =
> inp[ii];
>         } else {
>             SWIG_null_ref("Manta::RayPacketData::MaterialCP");
>         }
>     }
>     Py_INCREF(Py_None); resultobj = Py_None;
>     return resultobj;
>     fail:
>     return NULL;
> }
> ----------------------------------------------------------------------------
>
>
> I think the code generator should have made arg2 and "Manta::Material
> const**" instead of "Manta::Material **".  Any thoughts?
>
> Thanks,
> James
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc. Do you grep through log
> files
> for problems?  Stop!  Download the new AJAX search engine that makes
> searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
> http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
> _______________________________________________
> Swig-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/swig-user




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Swig-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/swig-user
Reply | Threaded
Open this post in threaded view
|

Re: const Class* [] trouble, const pointer

James Bigler
Here are array_test.cc and array_test.i (I hope attachments work with the
mailing list).  I use CMake to compile them, but these are the commands CMake
generates:

Building Swig source
/home/bigler/manta/vertical/opt/SwigInterface/array_test_wrap.cxx...
/usr/local/bin/swig -python -c++ -I/usr/include -I/home/bigler/manta/vertical
-I/home/bigler/manta/vertical/SCIRun
-I/home/bigler/manta/vertical/SCIRun/include -I/usr/include/python2.4
-I/home/bigler/manta/vertical/SwigInterface -o
/home/bigler/manta/vertical/opt/SwigInterface/array_test_wrap.cxx
/home/bigler/manta/vertical/SwigInterface/array_test.i

Building object file array_test_wrap.o...
c++ -o array_test_wrap.o -D_array_test_EXPORTS    -DSCI_NOPERSISTENT -O3
-fgcse-sm -funroll-loops -fstrict-aliasing -fsched-interblock
-falign-functions=16 -ffast-math -freorder-blocks -fPIC
-I/home/bigler/manta/vertical -I/home/bigler/manta/vertical/SCIRun
-I/home/bigler/manta/vertical/SCIRun/include -I/usr/include/python2.4
-I/home/bigler/manta/vertical/SwigInterface    -c
/home/bigler/manta/vertical/opt/SwigInterface/array_test_wrap.cxx

/home/bigler/manta/vertical/opt/SwigInterface/array_test_wrap.cxx: In function
‘PyObject* _wrap_RayPacketData_hitMatl_set(PyObject*, PyObject*)’:
/home/bigler/manta/vertical/opt/SwigInterface/array_test_wrap.cxx:1479: error:
invalid static_cast from type ‘Material**’ to type ‘const Material**’
gmake[1]: *** [array_test_wrap.o] Error 1

James


Marcelo Matus wrote:

> Could you please prepare a small example, like array_test.i or so, that
> contains a minimal version of your interfaces and still reproduce the
> problem?
>
> We need this since I see things like ' Manta::RayPacketData::Size' and a
> for
> loop which suggest  you are using a special typemap from the swig library,
> and is hard to figure out which one (and how) are you using.
>
> Marcelo
>
*snip*


class Material;

class RayPacketData {
public:
  enum {
    Size = 32
  };

#if 1
  Material const* hitMatl[Size];
#else
  typedef Material const* MaterialCP;
  MaterialCP hitMatl[Size];
#endif
};


%module manta

%{
#include "array_test.cc"
%}

%include "array_test.cc"
Reply | Threaded
Open this post in threaded view
|

Re: const Class* [] trouble, const pointer

Marcelo Matus
Ok, try now the SWIG-CVS version.
If you can't get/compile the CVS version, just keep using the
"-nocppcast" option
until the next release.

thanks,

Marcelo


James Bigler wrote:

> Here are array_test.cc and array_test.i (I hope attachments work with
> the mailing list).  I use CMake to compile them, but these are the
> commands CMake generates:
>
> Building Swig source
> /home/bigler/manta/vertical/opt/SwigInterface/array_test_wrap.cxx...
> /usr/local/bin/swig -python -c++ -I/usr/include
> -I/home/bigler/manta/vertical -I/home/bigler/manta/vertical/SCIRun
> -I/home/bigler/manta/vertical/SCIRun/include -I/usr/include/python2.4
> -I/home/bigler/manta/vertical/SwigInterface -o
> /home/bigler/manta/vertical/opt/SwigInterface/array_test_wrap.cxx
> /home/bigler/manta/vertical/SwigInterface/array_test.i
>
> Building object file array_test_wrap.o...
> c++ -o array_test_wrap.o -D_array_test_EXPORTS    -DSCI_NOPERSISTENT
> -O3 -fgcse-sm -funroll-loops -fstrict-aliasing -fsched-interblock
> -falign-functions=16 -ffast-math -freorder-blocks -fPIC
> -I/home/bigler/manta/vertical -I/home/bigler/manta/vertical/SCIRun
> -I/home/bigler/manta/vertical/SCIRun/include -I/usr/include/python2.4
> -I/home/bigler/manta/vertical/SwigInterface    -c
> /home/bigler/manta/vertical/opt/SwigInterface/array_test_wrap.cxx
>
> /home/bigler/manta/vertical/opt/SwigInterface/array_test_wrap.cxx: In
> function ‘PyObject* _wrap_RayPacketData_hitMatl_set(PyObject*,
> PyObject*)’:
> /home/bigler/manta/vertical/opt/SwigInterface/array_test_wrap.cxx:1479:
> error: invalid static_cast from type ‘Material**’ to type ‘const
> Material**’
> gmake[1]: *** [array_test_wrap.o] Error 1
>
> James
>
>
> Marcelo Matus wrote:
>
>> Could you please prepare a small example, like array_test.i or so, that
>> contains a minimal version of your interfaces and still reproduce the
>> problem?
>>
>> We need this since I see things like ' Manta::RayPacketData::Size'
>> and a for
>> loop which suggest  you are using a special typemap from the swig
>> library,
>> and is hard to figure out which one (and how) are you using.
>>
>> Marcelo
>>
> *snip*
>
>------------------------------------------------------------------------
>
>
>class Material;
>
>class RayPacketData {
>public:
>  enum {
>    Size = 32
>  };
>
>#if 1
>  Material const* hitMatl[Size];
>#else
>  typedef Material const* MaterialCP;
>  MaterialCP hitMatl[Size];
>#endif
>};
>
>  
>
>------------------------------------------------------------------------
>
>%module manta
>
>%{
>#include "array_test.cc"
>%}
>
>%include "array_test.cc"
>



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
<a href="http://ads.osdn.com/?ad_idv37&alloc_id865&op=click">http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
_______________________________________________
Swig-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/swig-user