Продолжаю изучать с++ ) Загвоздка с лямбда
class Process {
public:
int (*onReady)(const char*);
std::string outpurBuffer;
}
Process *proc = new Process();
proc->onReady = [](const char* reason) {
std::string = proc->outpurBuffer;
return 1;
};
Не работает, говорит что локальную переменную нельзя. Гуглю соответственно «c++ local variable in lambda», первый пример указывает что нужно в скобки квадратные передавать Captured variables
// Local Variables
std::string msg = "Hello";
int counter = 10;
// Defining Lambda function and
// Capturing Local variables by Value
auto func = [msg, counter] () {
//...
};
ок, делаю
proc->onReady = [proc](const char* reason) {
std::string s = proc->outpurBuffer;
return 1;
};
Снова ошибка, но уже с приведением типов. Что не так?
Кстати сразу другой вопросик, чем отличается
const char* reason;
const char *reason;
Есть ли разница? Компилятору я смотрю без разницы, то и то проглатывает