summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2018-02-22 00:14:07 +1100
committer Vas Crabb <vas@vastheman.com>2018-02-22 00:14:07 +1100
commit4635e4032c9e870f3359ab7d3895075613a297c2 (patch)
tree6ab2987fec0fc2db5d6102f3912d033f74ed6b68
parenta7f3371bd9605a556733116b255b9c4f32fa504f (diff)
forward universal references when setting callbacks in cases I noticed when looking over merged PRs (nw)
-rw-r--r--src/mame/machine/315-5838_317-0229_comp.h11
-rw-r--r--src/mame/machine/315-5881_crypt.h5
-rw-r--r--src/mame/machine/315_5296.h42
-rw-r--r--src/mame/machine/abc80kb.h2
-rw-r--r--src/mame/machine/apricotkb.h2
-rw-r--r--src/mame/machine/atarigen.h4
-rw-r--r--src/mame/machine/c117.h2
-rw-r--r--src/mame/machine/cuda.h8
-rw-r--r--src/mame/machine/dec_lk201.h2
-rw-r--r--src/mame/machine/igs025.h5
-rw-r--r--src/mame/machine/interpro_ioga.h18
-rw-r--r--src/mame/machine/interpro_sga.h2
-rw-r--r--src/mame/machine/isbc_215g.h2
-rw-r--r--src/mame/machine/k573cass.h16
-rw-r--r--src/mame/machine/km035.h4
-rw-r--r--src/mame/machine/mackbd.h4
-rw-r--r--src/mame/machine/megacdcd.h8
-rw-r--r--src/mame/machine/midwayic.h6
-rw-r--r--src/mame/machine/namco_c148.h4
-rw-r--r--src/mame/machine/st0016.h2
-rw-r--r--src/mame/machine/upd65031.h12
-rw-r--r--src/mame/machine/victor9k_kb.h4
-rw-r--r--src/mame/video/deco16ic.h4
-rw-r--r--src/mame/video/igs017_igs031.h2
-rw-r--r--src/mame/video/snk68_spr.h2
-rw-r--r--src/mame/video/tia.h6
-rw-r--r--src/mame/video/vsystem_spr.h2
-rw-r--r--src/mame/video/vsystem_spr2.h2
28 files changed, 86 insertions, 97 deletions
diff --git a/src/mame/machine/315-5838_317-0229_comp.h b/src/mame/machine/315-5838_317-0229_comp.h
index ff1231e99d5..07c7c044fdf 100644
--- a/src/mame/machine/315-5838_317-0229_comp.h
+++ b/src/mame/machine/315-5838_317-0229_comp.h
@@ -21,15 +21,8 @@ public:
// construction/destruction
sega_315_5838_comp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void set_read_cb_ch1(sega_dec_read_delegate readcb)
- {
- m_channel[0].m_read_ch = readcb;
- }
-
- void set_read_cb_ch2(sega_dec_read_delegate readcb)
- {
- m_channel[1].m_read_ch = readcb;
- }
+ template <typename Object> void set_read_cb_ch1(Object &&readcb) { m_channel[0].m_read_ch = std::forward<Object>(readcb); }
+ template <typename Object> void set_read_cb_ch2(Object &&readcb) { m_channel[1].m_read_ch = std::forward<Object>(readcb); }
DECLARE_READ32_MEMBER(decathlt_prot1_r);
DECLARE_READ32_MEMBER(decathlt_prot2_r);
diff --git a/src/mame/machine/315-5881_crypt.h b/src/mame/machine/315-5881_crypt.h
index a0929ac7201..d1d74c39551 100644
--- a/src/mame/machine/315-5881_crypt.h
+++ b/src/mame/machine/315-5881_crypt.h
@@ -28,10 +28,7 @@ public:
sega_m2_read_delegate m_read;
- void set_read_cb(sega_m2_read_delegate readcb)
- {
- m_read = readcb;
- }
+ template <typename Object> void set_read_cb(Object &&readcb) { m_read = std::forward<Object>(readcb); }
protected:
virtual void device_start() override;
diff --git a/src/mame/machine/315_5296.h b/src/mame/machine/315_5296.h
index 08786d0952f..053705970ee 100644
--- a/src/mame/machine/315_5296.h
+++ b/src/mame/machine/315_5296.h
@@ -74,27 +74,27 @@ public:
sega_315_5296_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration helpers
- template<class _Object> devcb_base &set_in_pa_callback(_Object object) { return m_in_pa_cb.set_callback(object); }
- template<class _Object> devcb_base &set_in_pb_callback(_Object object) { return m_in_pb_cb.set_callback(object); }
- template<class _Object> devcb_base &set_in_pc_callback(_Object object) { return m_in_pc_cb.set_callback(object); }
- template<class _Object> devcb_base &set_in_pd_callback(_Object object) { return m_in_pd_cb.set_callback(object); }
- template<class _Object> devcb_base &set_in_pe_callback(_Object object) { return m_in_pe_cb.set_callback(object); }
- template<class _Object> devcb_base &set_in_pf_callback(_Object object) { return m_in_pf_cb.set_callback(object); }
- template<class _Object> devcb_base &set_in_pg_callback(_Object object) { return m_in_pg_cb.set_callback(object); }
- template<class _Object> devcb_base &set_in_ph_callback(_Object object) { return m_in_ph_cb.set_callback(object); }
-
- template<class _Object> devcb_base &set_out_pa_callback(_Object object) { return m_out_pa_cb.set_callback(object); }
- template<class _Object> devcb_base &set_out_pb_callback(_Object object) { return m_out_pb_cb.set_callback(object); }
- template<class _Object> devcb_base &set_out_pc_callback(_Object object) { return m_out_pc_cb.set_callback(object); }
- template<class _Object> devcb_base &set_out_pd_callback(_Object object) { return m_out_pd_cb.set_callback(object); }
- template<class _Object> devcb_base &set_out_pe_callback(_Object object) { return m_out_pe_cb.set_callback(object); }
- template<class _Object> devcb_base &set_out_pf_callback(_Object object) { return m_out_pf_cb.set_callback(object); }
- template<class _Object> devcb_base &set_out_pg_callback(_Object object) { return m_out_pg_cb.set_callback(object); }
- template<class _Object> devcb_base &set_out_ph_callback(_Object object) { return m_out_ph_cb.set_callback(object); }
-
- template<class _Object> devcb_base &set_out_cnt0_callback(_Object object) { return m_out_cnt0_cb.set_callback(object); }
- template<class _Object> devcb_base &set_out_cnt1_callback(_Object object) { return m_out_cnt1_cb.set_callback(object); }
- template<class _Object> devcb_base &set_out_cnt2_callback(_Object object) { return m_out_cnt2_cb.set_callback(object); }
+ template <class Object> devcb_base &set_in_pa_callback(Object &&cb) { return m_in_pa_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_in_pb_callback(Object &&cb) { return m_in_pb_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_in_pc_callback(Object &&cb) { return m_in_pc_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_in_pd_callback(Object &&cb) { return m_in_pd_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_in_pe_callback(Object &&cb) { return m_in_pe_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_in_pf_callback(Object &&cb) { return m_in_pf_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_in_pg_callback(Object &&cb) { return m_in_pg_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_in_ph_callback(Object &&cb) { return m_in_ph_cb.set_callback(std::forward<Object>(cb)); }
+
+ template <class Object> devcb_base &set_out_pa_callback(Object &&cb) { return m_out_pa_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_pb_callback(Object &&cb) { return m_out_pb_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_pc_callback(Object &&cb) { return m_out_pc_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_pd_callback(Object &&cb) { return m_out_pd_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_pe_callback(Object &&cb) { return m_out_pe_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_pf_callback(Object &&cb) { return m_out_pf_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_pg_callback(Object &&cb) { return m_out_pg_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_ph_callback(Object &&cb) { return m_out_ph_cb.set_callback(std::forward<Object>(cb)); }
+
+ template <class Object> devcb_base &set_out_cnt0_callback(Object &&cb) { return m_out_cnt0_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_cnt1_callback(Object &&cb) { return m_out_cnt1_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_cnt2_callback(Object &&cb) { return m_out_cnt2_cb.set_callback(std::forward<Object>(cb)); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
diff --git a/src/mame/machine/abc80kb.h b/src/mame/machine/abc80kb.h
index 093a5ef88a3..b88cf9c8a20 100644
--- a/src/mame/machine/abc80kb.h
+++ b/src/mame/machine/abc80kb.h
@@ -41,7 +41,7 @@ public:
// construction/destruction
abc80_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template<class _Object> devcb_base &set_keydown_wr_callback(_Object object) { return m_write_keydown.set_callback(object); }
+ template <class Object> devcb_base &set_keydown_wr_callback(Object &&cb) { return m_write_keydown.set_callback(std::forward<Object>(cb)); }
uint8_t data_r();
diff --git a/src/mame/machine/apricotkb.h b/src/mame/machine/apricotkb.h
index 268812a7bc9..50c6a9cfb15 100644
--- a/src/mame/machine/apricotkb.h
+++ b/src/mame/machine/apricotkb.h
@@ -43,7 +43,7 @@ public:
// construction/destruction
apricot_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template<class _Object> devcb_base &set_txd_wr_callback(_Object object) { return m_write_txd.set_callback(object); }
+ template <class Object> devcb_base &set_txd_wr_callback(Object &&cb) { return m_write_txd.set_callback(std::forward<Object>(cb)); }
uint8_t read_keyboard();
diff --git a/src/mame/machine/atarigen.h b/src/mame/machine/atarigen.h
index b21cc3359e3..92a24646b55 100644
--- a/src/mame/machine/atarigen.h
+++ b/src/mame/machine/atarigen.h
@@ -104,7 +104,7 @@ public:
// configuration helpers
void set_sound_cpu(const char *cputag) { m_sound_cpu_tag = cputag; }
- template<class _Object> devcb_base &set_main_int_cb(_Object object) { return m_main_int_cb.set_callback(object); }
+ template <class Object> devcb_base &set_main_int_cb(Object &&cb) { return m_main_int_cb.set_callback(std::forward<Object>(cb)); }
// getters
DECLARE_READ_LINE_MEMBER(main_to_sound_ready) { return m_main_to_sound_ready ? ASSERT_LINE : CLEAR_LINE; }
@@ -176,7 +176,7 @@ public:
atari_vad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration helpers
- template<class _Object> devcb_base &set_scanline_int_cb(_Object object) { return m_scanline_int_cb.set_callback(object); }
+ template<class Object> devcb_base &set_scanline_int_cb(Object &&cb) { return m_scanline_int_cb.set_callback(std::forward<Object>(cb)); }
// getters
tilemap_device &alpha() const { return *m_alpha_tilemap; }
diff --git a/src/mame/machine/c117.h b/src/mame/machine/c117.h
index 2f67cb9d413..31b798f8d52 100644
--- a/src/mame/machine/c117.h
+++ b/src/mame/machine/c117.h
@@ -38,7 +38,7 @@ public:
m_maincpu_tag = maintag;
m_subcpu_tag = subtag;
}
- template<class _Object> devcb_base &set_subres_cb(_Object object) { return m_subres_cb.set_callback(object); }
+ template <class Object> devcb_base &set_subres_cb(Object &&cb) { return m_subres_cb.set_callback(std::forward<Object>(cb)); }
DECLARE_READ8_MEMBER(main_r);
DECLARE_READ8_MEMBER(sub_r);
diff --git a/src/mame/machine/cuda.h b/src/mame/machine/cuda.h
index 699329087a8..f7984087b33 100644
--- a/src/mame/machine/cuda.h
+++ b/src/mame/machine/cuda.h
@@ -96,10 +96,10 @@ public:
int rom_offset;
- template<class _Object> devcb_base &set_reset_cb(_Object wr) { return write_reset.set_callback(wr); }
- template<class _Object> devcb_base &set_linechange_cb(_Object wr) { return write_linechange.set_callback(wr); }
- template<class _Object> devcb_base &set_via_clock_cb(_Object wr) { return write_via_clock.set_callback(wr); }
- template<class _Object> devcb_base &set_via_data_cb(_Object wr) { return write_via_data.set_callback(wr); }
+ template <class Object> devcb_base &set_reset_cb(Object &&wr) { return write_reset.set_callback(std::forward<Object>(wr)); }
+ template <class Object> devcb_base &set_linechange_cb(Object &&wr) { return write_linechange.set_callback(std::forward<Object>(wr)); }
+ template <class Object> devcb_base &set_via_clock_cb(Object &&wr) { return write_via_clock.set_callback(std::forward<Object>(wr)); }
+ template <class Object> devcb_base &set_via_data_cb(Object &&wr) { return write_via_data.set_callback(std::forward<Object>(wr)); }
devcb_write_line write_reset, write_linechange, write_via_clock, write_via_data;
diff --git a/src/mame/machine/dec_lk201.h b/src/mame/machine/dec_lk201.h
index 231e3157a36..48cc32bb73f 100644
--- a/src/mame/machine/dec_lk201.h
+++ b/src/mame/machine/dec_lk201.h
@@ -60,7 +60,7 @@ public:
DECLARE_READ8_MEMBER(timer_r);
DECLARE_WRITE8_MEMBER(timer_w);
- template<class _Object> devcb_base &set_tx_handler(_Object wr) { return m_tx_handler.set_callback(wr); }
+ template <class Object> devcb_base &set_tx_handler(Object &&wr) { return m_tx_handler.set_callback(std::forward<Object>(wr)); }
void lk201_map(address_map &map);
protected:
diff --git a/src/mame/machine/igs025.h b/src/mame/machine/igs025.h
index bcf01989d51..30e0c911ad8 100644
--- a/src/mame/machine/igs025.h
+++ b/src/mame/machine/igs025.h
@@ -23,9 +23,7 @@ public:
uint32_t m_kb_game_id;
uint32_t m_kb_region;
-
- igs025_execute_external m_execute_external;
- void set_external_cb(igs025_execute_external newcb) { m_execute_external = newcb; }
+ template <typename Object> void set_external_cb(Object &&newcb) { m_execute_external = std::forward<Object>(newcb); }
DECLARE_WRITE16_MEMBER( olds_w );
DECLARE_WRITE16_MEMBER( drgw2_d80000_protection_w );
@@ -36,6 +34,7 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
+ igs025_execute_external m_execute_external;
uint16_t m_kb_prot_hold;
uint16_t m_kb_prot_hilo;
diff --git a/src/mame/machine/interpro_ioga.h b/src/mame/machine/interpro_ioga.h
index 67c53ea96ab..2c9d9da7d6f 100644
--- a/src/mame/machine/interpro_ioga.h
+++ b/src/mame/machine/interpro_ioga.h
@@ -106,15 +106,15 @@ protected:
};
public:
- template<class _Object> devcb_base &set_out_nmi_callback(_Object object) { return m_out_nmi_func.set_callback(object); }
- template<class _Object> devcb_base &set_out_irq_callback(_Object object) { return m_out_irq_func.set_callback(object); }
- template<class _Object> devcb_base &set_out_ivec_callback(_Object object) { return m_out_ivec_func.set_callback(object); }
- template<class _Object> devcb_base &set_dma_r_callback(int channel, _Object object) { return m_dma_channel[channel].device_r.set_callback(object); }
- template<class _Object> devcb_base &set_dma_w_callback(int channel, _Object object) { return m_dma_channel[channel].device_w.set_callback(object); }
- template<class _Object> devcb_base &set_serial_dma_r_callback(int channel, _Object object) { return m_serial_dma_channel[channel].device_r.set_callback(object); }
- template<class _Object> devcb_base &set_serial_dma_w_callback(int channel, _Object object) { return m_serial_dma_channel[channel].device_w.set_callback(object); }
- template<class _Object> devcb_base &set_fdc_tc_callback(_Object object) { return m_fdc_tc_func.set_callback(object); }
- template<class _Object> devcb_base &set_eth_ca_callback(_Object object) { return m_eth_ca_func.set_callback(object); }
+ template <class Object> devcb_base &set_out_nmi_callback(Object &&cb) { return m_out_nmi_func.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_irq_callback(Object &&cb) { return m_out_irq_func.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_ivec_callback(Object &&cb) { return m_out_ivec_func.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_dma_r_callback(int channel, Object &&cb) { return m_dma_channel[channel].device_r.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_dma_w_callback(int channel, Object &&cb) { return m_dma_channel[channel].device_w.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_serial_dma_r_callback(int channel, Object &&cb) { return m_serial_dma_channel[channel].device_r.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_serial_dma_w_callback(int channel, Object &&cb) { return m_serial_dma_channel[channel].device_w.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_fdc_tc_callback(Object &&cb) { return m_fdc_tc_func.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_eth_ca_callback(Object &&cb) { return m_eth_ca_func.set_callback(std::forward<Object>(cb)); }
void set_memory(const char *const tag, const int spacenum)
{
diff --git a/src/mame/machine/interpro_sga.h b/src/mame/machine/interpro_sga.h
index c784ecd6a62..d9753bb5533 100644
--- a/src/mame/machine/interpro_sga.h
+++ b/src/mame/machine/interpro_sga.h
@@ -14,7 +14,7 @@ class interpro_sga_device : public device_t
public:
interpro_sga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template<class _Object> devcb_base &set_out_berr_callback(_Object object) { return out_berr_func.set_callback(object); }
+ template <class Object> devcb_base &set_out_berr_callback(Object &&cb) { return out_berr_func.set_callback(std::forward<Object>(cb)); }
virtual void map(address_map &map);
diff --git a/src/mame/machine/isbc_215g.h b/src/mame/machine/isbc_215g.h
index ef4c057d335..9c761541836 100644
--- a/src/mame/machine/isbc_215g.h
+++ b/src/mame/machine/isbc_215g.h
@@ -23,7 +23,7 @@ public:
void set_wakeup_addr(uint32_t wakeup) { m_wakeup = wakeup; }
void set_maincpu_tag(const char *maincpu_tag) { m_maincpu_tag = maincpu_tag; }
- template<class _Object> devcb_base &set_irq_callback(_Object object) { return m_out_irq_func.set_callback(object); }
+ template <class Object> devcb_base &set_irq_callback(Object &&cb) { return m_out_irq_func.set_callback(std::forward<Object>(cb)); }
void isbc_215g_io(address_map &map);
void isbc_215g_mem(address_map &map);
diff --git a/src/mame/machine/k573cass.h b/src/mame/machine/k573cass.h
index a79e60e33dd..c317ef2aaf2 100644
--- a/src/mame/machine/k573cass.h
+++ b/src/mame/machine/k573cass.h
@@ -173,14 +173,14 @@ public:
konami573_cassette_y_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration helpers
- template<class _Object> devcb_base &set_d0_handler(_Object object) { return m_d0_handler.set_callback(object); }
- template<class _Object> devcb_base &set_d1_handler(_Object object) { return m_d1_handler.set_callback(object); }
- template<class _Object> devcb_base &set_d2_handler(_Object object) { return m_d2_handler.set_callback(object); }
- template<class _Object> devcb_base &set_d3_handler(_Object object) { return m_d3_handler.set_callback(object); }
- template<class _Object> devcb_base &set_d4_handler(_Object object) { return m_d4_handler.set_callback(object); }
- template<class _Object> devcb_base &set_d5_handler(_Object object) { return m_d5_handler.set_callback(object); }
- template<class _Object> devcb_base &set_d6_handler(_Object object) { return m_d6_handler.set_callback(object); }
- template<class _Object> devcb_base &set_d7_handler(_Object object) { return m_d7_handler.set_callback(object); }
+ template <class Object> devcb_base &set_d0_handler(Object &&cb) { return m_d0_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_d1_handler(Object &&cb) { return m_d1_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_d2_handler(Object &&cb) { return m_d2_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_d3_handler(Object &&cb) { return m_d3_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_d4_handler(Object &&cb) { return m_d4_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_d5_handler(Object &&cb) { return m_d5_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_d6_handler(Object &&cb) { return m_d6_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_d7_handler(Object &&cb) { return m_d7_handler.set_callback(std::forward<Object>(cb)); }
virtual DECLARE_READ_LINE_MEMBER(read_line_secflash_sda) override;
virtual DECLARE_WRITE_LINE_MEMBER(write_line_d0) override;
diff --git a/src/mame/machine/km035.h b/src/mame/machine/km035.h
index aae0036c37c..2f932fdd586 100644
--- a/src/mame/machine/km035.h
+++ b/src/mame/machine/km035.h
@@ -36,8 +36,8 @@ public:
// construction/destruction
km035_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template<class _Object> devcb_base &set_tx_handler(_Object wr) { return m_tx_handler.set_callback(wr); }
- template<class _Object> devcb_base &set_rts_handler(_Object wr) { return m_rts_handler.set_callback(wr); }
+ template <class Object> devcb_base &set_tx_handler(Object &&wr) { return m_tx_handler.set_callback(std::forward<Object>(wr)); }
+ template <class Object> devcb_base &set_rts_handler(Object &&wr) { return m_rts_handler.set_callback(std::forward<Object>(wr)); }
DECLARE_WRITE_LINE_MEMBER( write_rxd );
diff --git a/src/mame/machine/mackbd.h b/src/mame/machine/mackbd.h
index b443cf0a056..0a1178d51be 100644
--- a/src/mame/machine/mackbd.h
+++ b/src/mame/machine/mackbd.h
@@ -36,8 +36,8 @@ class mackbd_device : public device_t
{
public:
// config helper
- template<class _Object> devcb_base &set_clkout_handler(_Object object) { return m_clkout_handler.set_callback(object); }
- template<class _Object> devcb_base &set_dataout_handler(_Object object) { return m_dataout_handler.set_callback(object); }
+ template <class Object> devcb_base &set_clkout_handler(Object &&cb) { return m_clkout_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_dataout_handler(Object &&cb) { return m_dataout_handler.set_callback(std::forward<Object>(cb)); }
// construction/destruction
mackbd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
diff --git a/src/mame/machine/megacdcd.h b/src/mame/machine/megacdcd.h
index 2b10feb7b2f..21827ff6372 100644
--- a/src/mame/machine/megacdcd.h
+++ b/src/mame/machine/megacdcd.h
@@ -28,11 +28,11 @@ class lc89510_temp_device : public device_t
public:
void set_is_neoCD(bool new_is_neoCD) { is_neoCD = new_is_neoCD; }
- void set_type1_interrupt_callback(interrupt_delegate interrupt_callback) { type1_interrupt_callback = interrupt_callback; }
- void set_type2_interrupt_callback(interrupt_delegate interrupt_callback) { type2_interrupt_callback = interrupt_callback; }
- void set_type3_interrupt_callback(interrupt_delegate interrupt_callback) { type3_interrupt_callback = interrupt_callback; }
+ template <typename Object> void set_type1_interrupt_callback(Object &&callback) { type1_interrupt_callback = std::forward<Object>(callback); }
+ template <typename Object> void set_type2_interrupt_callback(Object &&callback) { type2_interrupt_callback = std::forward<Object>(callback); }
+ template <typename Object> void set_type3_interrupt_callback(Object &&callback) { type3_interrupt_callback = std::forward<Object>(callback); }
- void set_CDC_Do_DMA(segacd_dma_delegate new_segacd_dma_callback) { segacd_dma_callback = new_segacd_dma_callback; }
+ template <typename Object> void set_CDC_Do_DMA(Object &&callback) { segacd_dma_callback = std::forward<Object>(callback); }
lc89510_temp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
diff --git a/src/mame/machine/midwayic.h b/src/mame/machine/midwayic.h
index e682f9d451c..cdf2448ed93 100644
--- a/src/mame/machine/midwayic.h
+++ b/src/mame/machine/midwayic.h
@@ -158,9 +158,9 @@ public:
void set_shuffle(uint8_t shuffle) { m_shuffle_type = shuffle; }
void set_shuffle_default(uint8_t shuffle) { m_shuffle_default = shuffle; }
void set_auto_ack(uint8_t auto_ack) { m_auto_ack = auto_ack; }
- template<class _Object> devcb_base &set_irqhandler_callback(_Object object) { return m_irq_callback.set_callback(object); }
- template<class _Object> devcb_base &set_serial_tx_callback(_Object object) { return m_serial_tx_cb.set_callback(object); }
- template<class _Object> devcb_base &set_aux_output_callback(_Object object) { return m_aux_output_cb.set_callback(object); }
+ template <class Object> devcb_base &set_irqhandler_callback(Object &&cb) { return m_irq_callback.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_serial_tx_callback(Object &&cb) { return m_serial_tx_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_aux_output_callback(Object &&cb) { return m_aux_output_cb.set_callback(std::forward<Object>(cb)); }
void set_shuffle_state(int state);
void fifo_w(uint16_t data);
diff --git a/src/mame/machine/namco_c148.h b/src/mame/machine/namco_c148.h
index d595799a77b..e168dda66de 100644
--- a/src/mame/machine/namco_c148.h
+++ b/src/mame/machine/namco_c148.h
@@ -53,8 +53,8 @@ public:
void link_c148_device(const char *tag) { m_linked_c148_tag = tag; }
- template<class _Object> devcb_base &set_out_ext1_callback(_Object object) { return m_out_ext1_cb.set_callback(object); }
- template<class _Object> devcb_base &set_out_ext2_callback(_Object object) { return m_out_ext2_cb.set_callback(object); }
+ template <class Object> devcb_base &set_out_ext1_callback(Object &&cb) { return m_out_ext1_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_out_ext2_callback(Object &&cb) { return m_out_ext2_cb.set_callback(std::forward<Object>(cb)); }
devcb_write8 m_out_ext1_cb;
devcb_write8 m_out_ext2_cb;
diff --git a/src/mame/machine/st0016.h b/src/mame/machine/st0016.h
index 333cda7f837..8ad7971ec3a 100644
--- a/src/mame/machine/st0016.h
+++ b/src/mame/machine/st0016.h
@@ -23,7 +23,7 @@ class st0016_cpu_device : public z80_device, public device_gfx_interface
public:
st0016_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t);
- void set_dma_offs_callback(st0016_dma_offs_delegate callback) { m_dma_offs_cb = callback; }
+ template <typename Object> void set_dma_offs_callback(Object &&callback) { m_dma_offs_cb = std::forward<Object>(callback); }
DECLARE_WRITE8_MEMBER(st0016_sprite_bank_w);
DECLARE_WRITE8_MEMBER(st0016_palette_bank_w);
diff --git a/src/mame/machine/upd65031.h b/src/mame/machine/upd65031.h
index f5c8e0e7cc0..17e6ec64913 100644
--- a/src/mame/machine/upd65031.h
+++ b/src/mame/machine/upd65031.h
@@ -55,13 +55,13 @@ public:
// construction/destruction
upd65031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template<class _Object> devcb_base &set_kb_rd_callback(_Object object) { return m_read_kb.set_callback(object); }
- template<class _Object> devcb_base &set_int_wr_callback(_Object object) { return m_write_int.set_callback(object); }
- template<class _Object> devcb_base &set_nmi_wr_callback(_Object object) { return m_write_nmi.set_callback(object); }
- template<class _Object> devcb_base &set_spkr_wr_callback(_Object object) { return m_write_spkr.set_callback(object); }
+ template <class Object> devcb_base &set_kb_rd_callback(Object &&cb) { return m_read_kb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_int_wr_callback(Object &&cb) { return m_write_int.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_nmi_wr_callback(Object &&cb) { return m_write_nmi.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_spkr_wr_callback(Object &&cb) { return m_write_spkr.set_callback(std::forward<Object>(cb)); }
- void set_screen_update_callback(upd65031_screen_update_delegate callback) { m_screen_update_cb = callback; }
- void set_memory_update_callback(upd65031_memory_update_delegate callback) { m_out_mem_cb = callback; }
+ template <class Object> void set_screen_update_callback(Object &&cb) { m_screen_update_cb = std::forward<Object>(cb); }
+ template <class Object> void set_memory_update_callback(Object &&cb) { m_out_mem_cb = std::forward<Object>(cb); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
diff --git a/src/mame/machine/victor9k_kb.h b/src/mame/machine/victor9k_kb.h
index 709ee28f927..e1e042ac7e3 100644
--- a/src/mame/machine/victor9k_kb.h
+++ b/src/mame/machine/victor9k_kb.h
@@ -39,8 +39,8 @@ public:
// construction/destruction
victor_9000_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template<class _Object> devcb_base &set_kbrdy_cb(_Object object) { return m_kbrdy_cb.set_callback(object); }
- template<class _Object> devcb_base &set_kbdata_cb(_Object object) { return m_kbdata_cb.set_callback(object); }
+ template <class Object> devcb_base &set_kbrdy_cb(Object &&cb) { return m_kbrdy_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_kbdata_cb(Object &&cb) { return m_kbdata_cb.set_callback(std::forward<Object>(cb)); }
DECLARE_WRITE_LINE_MEMBER( kback_w );
diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h
index 7906cb364a5..e49d268d67c 100644
--- a/src/mame/video/deco16ic.h
+++ b/src/mame/video/deco16ic.h
@@ -35,8 +35,8 @@ public:
// configuration
void set_gfxdecode_tag(const char *tag) { m_gfxdecode.set_tag(tag); }
// void set_palette_tag(const char *tag);
- void set_bank1_callback(deco16_bank_cb_delegate callback) { m_bank1_cb = callback; }
- void set_bank2_callback(deco16_bank_cb_delegate callback) { m_bank2_cb = callback; }
+ template <typename Object> void set_bank1_callback(Object &&cb) { m_bank1_cb = std::forward<Object>(cb); }
+ template <typename Object> void set_bank2_callback(Object &&cb) { m_bank2_cb = std::forward<Object>(cb); }
void set_split(int split) { m_split = split; }
void set_pf1_size(int size) { m_pf1_size = size; }
void set_pf2_size(int size) { m_pf2_size = size; }
diff --git a/src/mame/video/igs017_igs031.h b/src/mame/video/igs017_igs031.h
index 1c8d2a372f6..be6ef235c85 100644
--- a/src/mame/video/igs017_igs031.h
+++ b/src/mame/video/igs017_igs031.h
@@ -24,7 +24,7 @@ public:
igs017_igs031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void set_palette_scramble_cb(igs017_igs031_palette_scramble_delegate newtilecb) { m_palette_scramble_cb = newtilecb; }
+ template <typename Object> void set_palette_scramble_cb(Object &&cb) { m_palette_scramble_cb = std::forward<Object>(cb); }
void set_text_reverse_bits()
{
diff --git a/src/mame/video/snk68_spr.h b/src/mame/video/snk68_spr.h
index 09b037b1b4e..c5573d9e36c 100644
--- a/src/mame/video/snk68_spr.h
+++ b/src/mame/video/snk68_spr.h
@@ -24,7 +24,7 @@ public:
// static configuration
void set_gfxdecode_tag(const char *tag) { m_gfxdecode.set_tag(tag); }
- void set_tile_indirect_cb(snk68_tile_indirection_delegate newtilecb) { m_newtilecb = newtilecb; }
+ template <typename Object> void set_tile_indirect_cb(Object &&cb) { m_newtilecb = std::forward<Object>(cb); }
void set_no_partial() { m_partialupdates = 0; }
DECLARE_READ16_MEMBER(spriteram_r);
diff --git a/src/mame/video/tia.h b/src/mame/video/tia.h
index f4f488e5fe8..c718f4b0cb2 100644
--- a/src/mame/video/tia.h
+++ b/src/mame/video/tia.h
@@ -54,9 +54,9 @@ class tia_video_device : public device_t,
public:
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- template<class _Object> devcb_base &set_read_input_port_callback(_Object object) { return m_read_input_port_cb.set_callback(object); }
- template<class _Object> devcb_base &set_databus_contents_callback(_Object object) { return m_databus_contents_cb.set_callback(object); }
- template<class _Object> devcb_base &set_vsync_callback(_Object object) { return m_vsync_cb.set_callback(object); }
+ template <class Object> devcb_base &set_read_input_port_callback(Object &&cb) { return m_read_input_port_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_databus_contents_callback(Object &&cb) { return m_databus_contents_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_vsync_callback(Object &&cb) { return m_vsync_cb.set_callback(std::forward<Object>(cb)); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
diff --git a/src/mame/video/vsystem_spr.h b/src/mame/video/vsystem_spr.h
index 50d7f2d9e69..3d132f63511 100644
--- a/src/mame/video/vsystem_spr.h
+++ b/src/mame/video/vsystem_spr.h
@@ -39,7 +39,7 @@ public:
m_yoffs = yoffs;
}
void set_pdraw(bool pdraw) { m_pdraw = pdraw; }
- void set_tile_indirect_cb(vsystem_tile_indirection_delegate newtilecb) { m_newtilecb = newtilecb; }
+ template <typename Object> void set_tile_indirect_cb(Object &&cb) { m_newtilecb = std::forward<Object>(cb); }
void set_gfx_region(int gfx_region) { m_gfx_region = gfx_region; }
void CG10103_set_pal_base(int pal_base) { m_pal_base = pal_base; }
void set_pal_mask(int pal_mask) { m_pal_mask = pal_mask; }
diff --git a/src/mame/video/vsystem_spr2.h b/src/mame/video/vsystem_spr2.h
index d0948307a0b..a96ab3264a0 100644
--- a/src/mame/video/vsystem_spr2.h
+++ b/src/mame/video/vsystem_spr2.h
@@ -22,7 +22,7 @@ class vsystem_spr2_device : public device_t
public:
// configuration
void set_gfxdecode_tag(const char *tag) { m_gfxdecode.set_tag(tag); }
- void set_tile_indirect_cb(vsystem_tile2_indirection_delegate newtilecb) { m_newtilecb = newtilecb; }
+ template <typename Object> void set_tile_indirect_cb(Object &&cb) { m_newtilecb = std::forward<Object>(cb); }
void set_pritype(int pritype) { m_pritype = pritype; }
void set_gfx_region(int gfx_region) { m_gfx_region = gfx_region; }
void set_offsets(int xoffs, int yoffs)