diff options
Diffstat (limited to 'src/devices/machine/netlist.h')
-rw-r--r-- | src/devices/machine/netlist.h | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/devices/machine/netlist.h b/src/devices/machine/netlist.h index 52d7602248a..85116ec8f34 100644 --- a/src/devices/machine/netlist.h +++ b/src/devices/machine/netlist.h @@ -337,12 +337,10 @@ public: // construction/destruction netlist_mame_analog_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - template <class FC> - void set_params(const char *in_name, void (FC::*callback)(const double, const attotime &), - const char *name, const char *tag) + template <typename... T> void set_params(const char *in_name, T &&... args) { m_in = in_name; - m_delegate = std::move(output_delegate(callback, name, tag, (FC *)nullptr)); + m_delegate.set(std::forward<T>(args)...); } @@ -368,14 +366,10 @@ public: // construction/destruction netlist_mame_logic_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - void set_params(const char *in_name, output_delegate &&adelegate); - template <class FunctionClass> void set_params(const char *in_name, void (FunctionClass::*callback)(const int, const attotime &), const char *name) + template <typename... T> void set_params(const char *in_name, T &&... args) { - set_params(in_name, output_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr))); - } - template <class FunctionClass> void set_params(const char *in_name, const char *devname, void (FunctionClass::*callback)(const int, const attotime &), const char *name) - { - set_params(in_name, output_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr))); + m_in = in_name; + m_delegate.set(std::forward<T>(args)...); } protected: |