template
void TemplateCallback( double deltaT, MidiMessageVec *message, void *userData ){
T * myData = static_cast(userData);
myData->readMessage(*message);
}
< /code>
Не знаю, почему rtmidi, несмотря на то, что он является библиотекой C ++, настолько убедительно об этом, но я просто не хочу менять все функции, когда я пробую новую цель Readmessage. < /p>
Это то, как я пытаюсь его установить.rtMidiHandle->setCallback(TemplateCallback,&testType);
< /code>
clang ++ дает мне: < /p>
error: address of overloaded function 'TemplateCallback' does not match required type 'void (double, std::vector *, void *)'
Как это. < /p> [code]template void TemplateCallback( double deltaT, MidiMessageVec *message, void *userData ){ T * myData = static_cast(userData); myData->readMessage(*message); } < /code> Не знаю, почему rtmidi, несмотря на то, что он является библиотекой C ++, настолько убедительно об этом, но я просто не хочу менять все функции, когда я пробую новую цель Readmessage. < /p> Это то, как я пытаюсь его установить.rtMidiHandle->setCallback(TemplateCallback,&testType); < /code> clang ++ дает мне: < /p> error: address of overloaded function 'TemplateCallback' does not match required type 'void (double, std::vector *, void *)'[/code] мне действительно нужно сделать макросмешную связь? />https://www.music.mcgill.ca/~gary/rtmidi/classrtmidiin.html#a7590563461c7467608a4b3806406b32d Обязательно требуется.[code]void mycallback( double deltatime, std::vector< unsigned char > *message, void *userData ) { unsigned int nBytes = message->size(); for ( unsigned int i=0; i