Передача методов C++ в качестве параметров без лямбда-выраженийC++

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

Сообщение Anonymous »

Я возился с созданием оболочки с использованием шаблонов, позволяющей передавать методы в качестве аргументов в другие методы без необходимости загружать свой вызывающий код лямбда-функциями на основе этого ответа, но столкнулся с проблемой.
А именно, решение компилируется, когда методы вычисления и ответа не являются частью класса MyClass. Однако как только я использую методы, являющиеся частью MyClass, я получаю следующие ошибки.
Ошибка Intellisense: не существует подходящего конструктора для преобразования от "void (std::function callback)" до "std::function"
Ошибка компилятора: 'MyClass::Computing': нестандартный suyntax; используйте '&' для создания указателя на члена
Держу пари, что мне здесь не хватает чего-то до глупости простого.
MyClass. ч
class MyClass{
MyClass();

void A(std::function func);
void B(int i);
}

MyClass.cpp
MyClass::MyClass(){
//Erroring Line
std::function question = TheWrapper(Computing);
question(Answering);
}

void MyClass::Computing(std::function callback){
//Thinking deep thoughts

//Answer
callback(42);
}
void MyClass::Answering(int i){
//Shrug
}

Wrapper.cpp
template
void TheSystem(F Func, U callback) {
//Submit request in triplicate
//Burry in a peat bog
//Dig up

//Start computation of the meaning of life, the universe, and everything
Func(callback);
}

std::function TheWrapper(const std::function& Func) {
return [Func](std::function callback) { TheSystem(Func, callback); };
}


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

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

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

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

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

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

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