Здравствуйте, Alekzander, Вы писали:
A>"Концепция поменялась" ©
Я понял, чего я хочу на самом деле. Не хочу я никакой DSL. А хочу я примерно вот такого:
A>A>class Library : public Webserver<Library>
A>{
A>...
A> BEGIN_FUNCTION_MAP
A> FUNCTION_2("getModules", getModules)
A> FUNCTION_1("offerResult", offerResult)
A> FUNCTION_1("requestSearch", requestSearch)
A> FUNCTION_0("getUserName", getUserName)
A> END_FUNCTION_MAP
A> json::value getModules(json::value folder, json::value sort) const;
A> json::value offerResult(json::value result);
A> json::value requestSearch(json::value query);
A> json::value getUserName();
A>};
A>
Вы можете наколхозить это сами с любым фреймворком, который может разобрать вам query-string на отдельные составляющие (например, посредством эмуляции Express-JS).
A>Судя по всему, придётся взять какой-нибудь Mongoose и напедалить FUNCTION_MAP самому.
Как человек, которому довелось работать в C++ном проекте с Си-ным CivetWeb, могу лишь заметить, что если хочется подосрать проекту, то задействование чисто-сишной либы в C++ном коде -- это верный путь.