I am reading to an open source project. I am not able to understand what this snippet does ?
EXPORT Result LoaderParse(
LoaderContext *Cxt, Context **Module,
const char *Path) {
return wrap(
[&]() {
return fromloa(Cxt)->parse(std::filesystem::absolute(Path));
},
[&](auto &&Res) { *Mod = toAST((*Res).release()); }, Cxt,
Module);
}
template <typename T, typename U, typename... CxtT>
inline Result wrap(T &&Proc, U &&Then, CxtT *...Cxts) noexcept {
if (isC(Cxts...)) {
if (auto Res = Proc()) {
Then(Res);
return 0;
} else {
return 1;
}
} else {
return 2;
}
}
Can anyone explain me what does [&] do in this case?
Aucun commentaire:
Enregistrer un commentaire