diff options
author | couriersud <couriersud@gmx.org> | 2019-01-31 01:03:32 +0100 |
---|---|---|
committer | couriersud <couriersud@gmx.org> | 2019-01-31 01:45:34 +0100 |
commit | a80f10e1cfe5d5a572b649bebb36cbb9d39053ab (patch) | |
tree | 52075bb9d62c0e2dbbe548c1c8b70d09f0f52b36 | |
parent | 1513c777b47d19c7df99ba43142d7a334392a0b5 (diff) |
netlist: type safety for delegates. (nw)
-rw-r--r-- | src/lib/netlist/plib/ppmf.h | 15 | ||||
-rw-r--r-- | src/mame/audio/nl_kidniki.cpp | 6 |
2 files changed, 13 insertions, 8 deletions
diff --git a/src/lib/netlist/plib/ppmf.h b/src/lib/netlist/plib/ppmf.h index dc151d5d6a6..4f0e8b7ba07 100644 --- a/src/lib/netlist/plib/ppmf.h +++ b/src/lib/netlist/plib/ppmf.h @@ -241,23 +241,28 @@ namespace plib { { public: class generic_class; + + template <class C> + using MemberFunctionType = R (C::*)(Targs...); + pmfp() : pmfp_base<R, Targs...>(), m_obj(nullptr) {} - template<typename MemberFunctionType, typename O> - pmfp(MemberFunctionType mftp, O *object) + template<typename O> + pmfp(MemberFunctionType<O> mftp, O *object) : pmfp_base<R, Targs...>() { this->set(mftp, object); } - template<typename MemberFunctionType, typename O> - void set(MemberFunctionType mftp, O *object) + + template<typename O> + void set(MemberFunctionType<O> mftp, O *object) { this->set_base(mftp, object); m_obj = reinterpret_cast<generic_class *>(object); } - inline R operator()(Targs... args) + inline R operator()(Targs ... args) { return this->call(m_obj, std::forward<Targs>(args)...); } diff --git a/src/mame/audio/nl_kidniki.cpp b/src/mame/audio/nl_kidniki.cpp index 7865ea40750..835ed884545 100644 --- a/src/mame/audio/nl_kidniki.cpp +++ b/src/mame/audio/nl_kidniki.cpp @@ -2,7 +2,7 @@ // copyright-holders:Andrew Gardner, Couriersud #include "netlist/devices/net_lib.h" -#define USE_FRONTIERS 1 +#define USE_FRONTIERS 0 #define USE_FIXED_STV 1 /* ---------------------------------------------------------------------------- @@ -326,8 +326,8 @@ NETLIST_START(kidniki) PARAM(Solver.ACCURACY, 1e-7) PARAM(Solver.NR_LOOPS, 100) PARAM(Solver.GS_LOOPS, 300) - PARAM(Solver.METHOD, "MAT_CR") - //PARAM(Solver.METHOD, "GMRES") + //PARAM(Solver.METHOD, "MAT_CR") + PARAM(Solver.METHOD, "GMRES") //PARAM(Solver.SOR_FACTOR, 1.73) //PARAM(Solver.METHOD, "SOR") #endif |