🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Function overloading issue.

Started by
3 comments, last by BornToCode 15 years, 11 months ago
In my C++ class i have methods which are overloaded. In angel script i tried to bind those method but it keeps on telling me that it cannot differentiate which one of the overloaded method to use, event though i am passing the proper parameters to it. Here is an example of what i am doing This is my C++ class. int GetTileAnimationFrame(int index); int GetTileAnimationFrame(int x,int y); AngelScript. r = engine->RegisterObjectMethod("TileImage","int GetTileFrame(int x,int y)",asMETHOD(Emotion2D::CTileImage,GetTileAnimationFrame),asCALL_THISCALL);assert(r>=0); This is the error i am getting. cannot convert from 'overloaded-function' to 'void (__thiscall Emotion2D::CTileImage::* )(void)'
Advertisement
For overloaded functions you need to use the asMETHODPR macro, which let's you inform the parameters and return type of the method. Otherwise C++ won't know which function you want to take the address of.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

or you should be able to cast the method pointer (this what you do with boost.python):

(int (Emotion2D::CTileImage::*)(int,int))&GetTileAnimationFrame
"I am a donut! Ask not how many tris/batch, but rather how many batches/frame!" -- Matthias Wloka & Richard Huddy, (GDC, DirectX 9 Performance)

http://www.silvermace.com/ -- My personal website
Which is exactly what the asMETHODPR macro does behind the scenes. :)

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

Could you give an example using asMETHODPR.
Forget it i figure it out.

This topic is closed to new replies.

Advertisement