Boost Python - перегруженные функции с проблемой аргументов по умолчанию

У меня есть класс с двумя функциями, каждая из которых принимает другой набор параметров, и обе имеют аргументы по умолчанию, например:

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));
}

Проблема в том, что я действительно не знаю, как использовать их вместе в одно и то же время. Я бы не хотел менять определения функций базового класса.

Может ли кто-нибудь, кто делал это раньше или знает, как это сделать, помочь мне?

Заранее спасибо

7
задан Megatron 18 May 2011 в 21:03
поделиться