Как преобразовать свободную функцию, шаблон, в указатель функции стиля C?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как преобразовать свободную функцию, шаблон, в указатель функции стиля C?

Сообщение Anonymous »

Как это. < /p>

Код: Выделить всё

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 *)'

мне действительно нужно сделать макросмешную связь? />https://www.music.mcgill.ca/~gary/rtmid ... 806406b32d
Обязательно требуется.

Код: Выделить всё

void mycallback( double deltatime, std::vector< unsigned char > *message, void *userData )
{
unsigned int nBytes = message->size();
for ( unsigned int i=0; i

Подробнее здесь: [url]https://stackoverflow.com/questions/79591408/how-to-convert-a-free-function-templated-to-a-c-style-function-pointer[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»