template<class F, class C=void> void reg(proc_t proc, F f, C *c=nullptr) {
reg1(proc, marshalled_func<F, ReturnOnFailure>::wrap(f, c));
}
template<class F, class C=void> void reg(proc_t proc, F f, C *c=nullptr) {
reg1(proc, marshalled_func<F, ReturnOnFailure>::wrap(f, c));
}