summaryrefslogtreecommitdiff
path: root/common/accel-invoke.hpp
diff options
context:
space:
mode:
authora1xd <[email protected]>2021-04-08 02:30:01 -0400
committera1xd <[email protected]>2021-04-08 02:30:01 -0400
commitc55d1bfd01147fa014ac07d4b03ef3cad8427ae6 (patch)
tree39ffa4a79bc6b019443521f10203f787c4b98698 /common/accel-invoke.hpp
parentunmark fill as const (diff)
downloadrawaccel-c55d1bfd01147fa014ac07d4b03ef3cad8427ae6.tar.xz
rawaccel-c55d1bfd01147fa014ac07d4b03ef3cad8427ae6.zip
optimize a bit/refactor modify
Diffstat (limited to 'common/accel-invoke.hpp')
-rw-r--r--common/accel-invoke.hpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/common/accel-invoke.hpp b/common/accel-invoke.hpp
index 0e264c1..f2a95dc 100644
--- a/common/accel-invoke.hpp
+++ b/common/accel-invoke.hpp
@@ -20,7 +20,16 @@ namespace rawaccel {
accel_invoker(const accel_args& args)
{
cb = visit_accel([](auto&& arg) {
- return &invoke_impl<remove_ref_t<decltype(arg)>>;
+ using T = remove_ref_t<decltype(arg)>;
+
+ if constexpr (is_same_v<T, motivity>) {
+ static_assert(sizeof motivity == sizeof binlog_lut);
+ return &invoke_impl<binlog_lut>;
+ }
+ else {
+ return &invoke_impl<T>;
+ }
+
}, make_mode(args), accel_union{});
}