Re: Pass int64
"Valery" <[email protected]>
| Newsgroups | gmane.comp.lang.lua.bind.user |
|---|---|
| Message-ID | <07e801c9e463$1baba9e0$80aea8c0@winxpvpc> |
Hello, 2 Daniel Wallin: Thanks for your sample. I am using LUA with 32 bit integers. Using your version of default_converter<int64>, I may read values as int64 in my cpp functions. Yes, this sample does not fully support __int64, but the sample is really useful for me. 2 Niki Bowe: Thanks for your sample. This seems fully support __int64. I merged it with Daniel's sample (I use new luabind version) and the result worked for me. But how to check that metatable is correct? I know this does not relates to luabind, but could you please provide a sample? Thanks, Valery. ----- Original Message ----- From: Niki Bowe To: [email protected] Sent: Monday, June 01, 2009 5:33 AM Subject: Re: [luabind] Pass int64 James Porter wrote: Niki Bowe wrte: Done correctly that is the best solution. Itll allow you to do arithmetic on 64 bit integers in lua. Though there is a bit more to it than that. lua_Number will need to be able to hold int64 values without loss. which means youll need to either go with int64 as lua_Number (ie integer only lua) or long double as lua_Number (non portable. no guarantee it can represent all 64 bit ints. Are you sure about this? Because that would imply that Lua 5.1 doesn't work properly when compiled for a 64-bit platform since, by default, LUA_INTEGER is #defined to ptrdiff_t. That seems like something the Lua developers would have considered, but maybe not... - Jim Lua certainly works on 64 bit platforms. It just doesnt do what you might expect. depending on what you expect. The problem here is that lua_Number (by default) is set to double. and internally lua values are represented by the following union /* ** Union of all Lua values */ typedef union { GCObject *gc; void *p; lua_Number n; int b; } Value; Internally when you push an integer it casts it to lua_Number. (see the code for lua_pushinteger). So if you want to be able to represent any 64 bit integer in lua you will have to do one of the things I suggested in a previous email. -------------------------------------------------------------------------------- ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp as they present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com -------------------------------------------------------------------------------- _______________________________________________ luabind-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/luabind-user ------------------------------------------------------------------------------ OpenSolaris 2009.06 is a cutting edge operating system for enterprises looking to deploy the next generation of Solaris that includes the latest innovations from Sun and the OpenSource community. Download a copy and enjoy capabilities such as Networking, Storage and Virtualization. Go to: http://p.sf.net/sfu/opensolaris-get _______________________________________________ luabind-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/luabind-user