В настоящее время я работаю над простым и абстрактным эмулятором для процессоров, и я использую таблицу для перевода кодов кода машинного кода в действия. В настоящее время в этой таблице содержатся указатели на делегирование функций (предоставляемых внешней библиотекой), которые являются единственной опцией, которую я имел в то время (до C++ 11), чтобы можно было вызвать функции-члены экземпляров подкласса.C++ 11: Таблица указателей функций, Lambdas
Пока что Lambdas выглядит так, как будто они могут обеспечить идеальную замену, но я все еще хочу поддерживать указатели функций ванили. Этот учебник по lambdas показывает пример, где вы можете обращаться с lambdas и указателями функций одинаково, но мне интересно, можно ли хранить смешанный массив указателей на функции и lambdas, чтобы я мог также хранить их в одном и том же месте.
Безгражданные лямбды (то есть без захвата) могут быть преобразованы в указатели функций. Таким образом, вы можете хранить как указатели на функции, так и безстоящие lambdas в массиве указателей на функции. – dyp
Может ли lambdas без привязки привязываться к определенному экземпляру класса, чтобы он обращался к своим членам (и имел одну и ту же лямбду, как-то перестроенную другой функцией, чтобы указать на другой экземпляр того же класса)? – Miles
В безстоящей лямбда единственными переменными, к которым вы можете получить доступ, являются переменные области статического локального и пространственного пространства имен (а также параметры лямбда). – dyp