【发布时间】:2011-05-18 21:03:54
【问题描述】:
我有一个有两个函数的类,它们都采用不同的参数集,并且都具有如下默认参数:
void PlaySound(const std::string &soundName, int channel = 0, bool UseStoredPath = true);
void PlaySound(FMOD::Sound* sound, int channel = 0);
我从这里的教程中找到了如何执行默认参数重载
http://www.boost.org/doc/libs/1_37_0/libs/python/doc/v2/overloads.html
以及如何在此处使用不同的参数类型进行函数重载
http://boost.2283326.n4.nabble.com/Boost-Python-def-and-member-function-overloads-td2659648.html
我最终会做这样的事情......
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(PlaySoundFromFile, Engine::PlaySound, 1, 3)
BOOST_PYTHON_MODULE(EngineModule)
{
class_<Engine>("Engine")
//Sound
.def("PlaySound", static_cast< void(Engine::*)(std::string, int, bool)>(&Engine::PlaySound));
}
问题是我真的不知道如何同时使用它们。我想避免更改我的基类函数定义。
以前做过或知道如何做的人可以帮助我吗?
提前致谢
【问题讨论】:
标签: c++ boost boost-python