Почему ISO C++ запрещает использовать адрес связанной функции-члена для формирования указателя на функцию-член?C++

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

Сообщение Anonymous »

Вот ошибка в GCC (которую я уже исправил):

ISO C++ запрещает использовать адрес связанной функции-члена для формирования указателя. в функцию-член

Это строка ошибки моего кода:

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

threads[i] = std::thread(&runnable->runTask, runnable, i, num_total_tasks);

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

runnable
является объектом, а Runtask -нестатическая функция. Компилятор бросает мне ошибку только на заголовок. функция Они рекомендуют использовать и irunnable :: runtask . Я использую его, чтобы пройти компилятор. Strong> какую функцию вы используете , почему мне нужно ввести аргумент obj's pointer и использовать Weird & iRunnable :: runtask для ссылки на нестатическую функцию члена.
Одной из возможных запрещенных причин для меня является полиморфизм времени выполнения, я думаю, что, возможно, C ++ не может напрямую получить, какую функцию вы ссылаетесь только по типу указателя объекта, во время выполнения он решит запустить функцию элемента по типу объекта. Указатель действительно укажите на. Таким образом, адрес будет изменяться динамически. Я хочу получить ответы с точки зрения дизайна, спасибо!

Подробнее здесь: https://stackoverflow.com/questions/793 ... rm-a-point
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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