У меня есть класс с двумя функциями, каждая из которых принимает другой набор параметров, и обе имеют аргументы по умолчанию, например:
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")
//Sound
.def("PlaySound", static_cast< void(Engine::*)(std::string, int, bool)>(&Engine::PlaySound));
}
Проблема в том, что я действительно не знаю, как использовать их вместе в одно и то же время. Я бы не хотел менять определения функций базового класса.
Может ли кто-нибудь, кто делал это раньше или знает, как это сделать, помочь мне?
Заранее спасибо