summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/accel-natural.hpp1
-rw-r--r--common/accel-union.hpp20
2 files changed, 10 insertions, 11 deletions
diff --git a/common/accel-natural.hpp b/common/accel-natural.hpp
index 521a1ae..6f30a38 100644
--- a/common/accel-natural.hpp
+++ b/common/accel-natural.hpp
@@ -54,6 +54,5 @@ namespace rawaccel {
natural_base(args),
constant(-limit / accel) {}
- natural() = default;
};
}
diff --git a/common/accel-union.hpp b/common/accel-union.hpp
index 19fd9fe..136db44 100644
--- a/common/accel-union.hpp
+++ b/common/accel-union.hpp
@@ -24,11 +24,11 @@ namespace rawaccel {
loglog_sigmoid<GAIN> loglog_sigmoid_g;
loglog_sigmoid<LEGACY> loglog_sigmoid_l;
- void init(const accel_args& args)
+ template <template <bool> class AccelTemplate, typename Visitor>
+ auto visit_helper(Visitor vis, bool gain)
{
- visit([&](auto& impl) {
- impl = { args };
- }, args);
+ if (gain) return vis(reinterpret_cast<AccelTemplate<GAIN>&>(*this));
+ else return vis(reinterpret_cast<AccelTemplate<LEGACY>&>(*this));
}
template <typename Visitor>
@@ -41,17 +41,17 @@ namespace rawaccel {
case accel_mode::motivity: return visit_helper<loglog_sigmoid>(vis, args.gain);
case accel_mode::power: return visit_helper<power>(vis, args.gain);
case accel_mode::lookup: return vis(lut);
- default: return vis(noaccel);
+ default: return vis(noaccel);
}
}
- private:
- template <template <bool> class AccelTemplate, typename Visitor>
- auto visit_helper(Visitor vis, bool gain)
+ void init(const accel_args& args)
{
- if (gain) return vis(reinterpret_cast<AccelTemplate<GAIN>&>(*this));
- else return vis(reinterpret_cast<AccelTemplate<LEGACY>&>(*this));
+ visit([&](auto& impl) {
+ impl = { args };
+ }, args);
}
+
};
}