diff options
| author | a1xd <[email protected]> | 2021-09-08 03:01:43 -0400 |
|---|---|---|
| committer | a1xd <[email protected]> | 2021-09-08 03:01:43 -0400 |
| commit | c79705ff9fca84e2a7758f5c1655f71e5651c271 (patch) | |
| tree | 95ef5071ed33702f92cf4831d60379c103e7a436 /common/accel-union.hpp | |
| parent | update SettingsManager (diff) | |
| download | rawaccel-c79705ff9fca84e2a7758f5c1655f71e5651c271.tar.xz rawaccel-c79705ff9fca84e2a7758f5c1655f71e5651c271.zip | |
fix clang build errors
Diffstat (limited to 'common/accel-union.hpp')
| -rw-r--r-- | common/accel-union.hpp | 20 |
1 files changed, 10 insertions, 10 deletions
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); } + }; } |