139,150d138
< template <typename T>
< void fromInt(T &t, int i)
< {
< t = (T)i;
< }
<
< template <typename T>
< void fromSimObject(T &t, SimObject *s)
< {
< t = dynamic_cast<T>(s);
< }
<
163,168c151,156
< #define UNSERIALIZE_ENUM(scalar) \
< do { \
< int tmp; \
< paramIn(cp, #scalar, tmp); \
< fromInt(scalar, tmp); \
< } while (0)
---
> #define UNSERIALIZE_ENUM(scalar) \
> do { \
> int tmp; \
> paramIn(cp, #scalar, tmp); \
> scalar = static_cast<decltype(scalar)>(tmp); \
> } while (0)
196,200c184,188
< do { \
< SimObject *sptr; \
< objParamIn(cp, #objptr, sptr); \
< fromSimObject(objptr, sptr); \
< } while (0)
---
> do { \
> SimObject *sptr; \
> objParamIn(cp, #objptr, sptr); \
> objptr = dynamic_cast<decltype(objptr)>(sptr); \
> } while (0)