summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2019-01-31 01:03:32 +0100
committer couriersud <couriersud@gmx.org>2019-01-31 01:45:34 +0100
commita80f10e1cfe5d5a572b649bebb36cbb9d39053ab (patch)
tree52075bb9d62c0e2dbbe548c1c8b70d09f0f52b36
parent1513c777b47d19c7df99ba43142d7a334392a0b5 (diff)
netlist: type safety for delegates. (nw)
-rw-r--r--src/lib/netlist/plib/ppmf.h15
-rw-r--r--src/mame/audio/nl_kidniki.cpp6
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