summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--netfs/fuse/fuseAppBase.cpp2
-rw-r--r--netfs/fuse/fuseAppBase.h5
2 files changed, 6 insertions, 1 deletions
diff --git a/netfs/fuse/fuseAppBase.cpp b/netfs/fuse/fuseAppBase.cpp
index fc6fa14..f0d6b52 100644
--- a/netfs/fuse/fuseAppBase.cpp
+++ b/netfs/fuse/fuseAppBase.cpp
@@ -224,7 +224,7 @@ FuseAppBase::runint(int argc, char ** argv)
fuseApp = this;
struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
if (fuse_opt_parse(&args, fuseApp, fuse_opts,
- &helper<decltype(&FuseAppBase::opt_parse), &FuseAppBase::opt_parse>) == -1) {
+ &internalHelper<decltype(&FuseAppBase::opt_parse), &FuseAppBase::opt_parse>) == -1) {
exit(1);
}
return args;
diff --git a/netfs/fuse/fuseAppBase.h b/netfs/fuse/fuseAppBase.h
index 4128c6b..daa8cb1 100644
--- a/netfs/fuse/fuseAppBase.h
+++ b/netfs/fuse/fuseAppBase.h
@@ -170,6 +170,11 @@ class DLL_PUBLIC FuseAppBase {
}
}
}
+ template <typename Func, Func f, typename ... Args>
+ static int internalHelper(Args ... a)
+ {
+ return (fuseApp->*f)(a...);
+ }
static FuseAppBase * fuseApp;
};