Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > SWIG and __int64

Reply
Thread Tools

SWIG and __int64

 
 
Matt Whelan
Guest
Posts: n/a
 
      08-14-2003
Supposedly, recent versions of SWIG can be made to work with MS VC++'s
non-standard integer data types. According to a recent SWIG ChangeLog
entry:

%apply long long { __int64 };

should make Swig happy. But it doesn't. I get Syntax Errors on each
line where __int64 appears.

Am I missing something? I'm new to SWIG (but not to Python or C++).
My searches to date have turned up no examples of successful __int64
and SWIG interaction. If anyone could provide such an example, it
would be deeply appreciated.

I also need to do similar things for __int8 * and __int32, but I
assume once I get __int64 working the solutions for those will become
obvious.

--
Matt Whelan
 
Reply With Quote
 
 
 
 
Lyle Johnson
Guest
Posts: n/a
 
      08-14-2003
Matt Whelan wrote:

> Supposedly, recent versions of SWIG can be made to work with MS VC++'s
> non-standard integer data types. According to a recent SWIG ChangeLog
> entry:
>
> %apply long long { __int64 };
>
> should make Swig happy. But it doesn't. I get Syntax Errors on each
> line where __int64 appears.


Just to clarify: are you getting errors when running SWIG (i.e. to
generate the wrapper code) or when compiling the code that SWIG
generated for you?

 
Reply With Quote
 
 
 
 
Matt Whelan
Guest
Posts: n/a
 
      08-15-2003
Lyle Johnson <(E-Mail Removed)> wrote in message news:<(E-Mail Removed)>...
> Just to clarify: are you getting errors when running SWIG (i.e. to
> generate the wrapper code) or when compiling the code that SWIG
> generated for you?


Yes, it's in the SWIG generation step.

I think I've figured out the problem, but I still don't know what to
do about it.

All the __int?? types are specified as unsigned in my code. SWIG
works great on default-signedness types, but it throws syntax errors
on "unsigned __int64" and friends.

So here's what I've got:

----Begin Code----
test.i:
%module test_wrap
%{
#include "test.h"
%}

%apply long long { __int64 }

%include test.h

test.h:
#ifndef TEST_H
#define TEST_H

unsigned __int64 foo(); //body is {return 42;} in test.cpp

#endif
----End Code----

If I remove the unsigned qualifier, it works fine, but as it is I get
a syntax error on line 4 of test.h.

I've tried adding the unsigned qualifier to the %apply statment in all
possible ways; none of them help.

I'm beginning to suspect this is a bug in SWIG. If someone can give
me a work around (or educate me on what I'm doing wrong), I would
appreciate it.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
format of double and __int64 Jayesh C Programming 8 11-29-2005 10:05 PM
Why different sizes (with unions) when __int64 used??? JR C++ 3 02-05-2004 03:31 PM
__int64 vs. long long Tim Clacy C++ 8 11-10-2003 03:29 PM
unsigned __int64 overflow problem Vivi C++ 2 08-25-2003 06:09 AM
Re: Different results if compared as double or __int64? John Tsiombikas (Nuclear / the Lab) C++ 1 06-30-2003 02:31 PM



Advertisments