Мешать логику js c логикой шаблонизатора Twig, Blade и т.д. Или же фронтенд отделить целиком от бекенда, сделав бекенд чисто REST ?
std::bind
для каррирования вашего метода. Нестатический метод обязательно принимает неявно первым параметром указатель на объект, у которого он вызывается. Тот самый this. Т.е. метод без параметров на самом деле является функцией с 1 параметром. Вот этот параметр и нужно зафиксировать, превратив метод в настоящую функцию без параметров.#include <functional>
#include <iostream>
#include <string>
#include <map>
class Foo {
public:
Foo(std::string msg): m_msg(msg) {}
void event() {
std::cout << m_msg << std::endl;
}
private:
std::string m_msg;
};
int main() {
auto foo = new Foo("Foo");
auto bar = new Foo("Bar");
std::map<std::string, std::function<void ()>> keyEvents = {
{"foo", std::bind(&Foo::event, foo)},
{"bar", std::bind(&Foo::event, bar)}
};
for(auto callback: keyEvents) {
std::cout << callback.first << ":";
callback.second();
}
keyEvents.clear();
delete foo;
delete bar;
return 0;
}
class AddItem
{
AddItem(MainWindow *parent, QList<Institution>& ins);
...
private:
QList<Institution>& parent_institutions;
};
int a = 3;
int* p = new int;
delete p;