ISO C++ запрещает использовать адрес связанной функции-члена для формирования указателя. в функцию-член
Это строка ошибки моего кода:
Код: Выделить всё
threads[i] = std::thread(&runnable->runTask, runnable, i, num_total_tasks);
Код: Выделить всё
runnable
Одной из возможных запрещенных причин для меня является полиморфизм времени выполнения, я думаю, что, возможно, C ++ не может напрямую получить, какую функцию вы ссылаетесь только по типу указателя объекта, во время выполнения он решит запустить функцию элемента по типу объекта. Указатель действительно укажите на. Таким образом, адрес будет изменяться динамически. Я хочу получить ответы с точки зрения дизайна, спасибо!
Подробнее здесь: https://stackoverflow.com/questions/793 ... rm-a-point