75,77c75,77
< template <typename BitUnion>
< void paramOut(CheckpointOut &cp, const std::string &name,
< const BitfieldBackend::BitUnionOperators<BitUnion> &p)
---
> template <typename T>
> void
> paramOut(CheckpointOut &cp, const std::string &name, const BitUnionType<T> &p)
79c79
< paramOut(cp, name, p.__storage);
---
> paramOut(cp, name, static_cast<BitUnionBaseType<T> >(p));
85,87c85,87
< template <typename BitUnion>
< void paramIn(CheckpointIn &cp, const std::string &name,
< BitfieldBackend::BitUnionOperators<BitUnion> &p)
---
> template <typename T>
> void
> paramIn(CheckpointIn &cp, const std::string &name, BitUnionType<T> &p)
89c89,91
< paramIn(cp, name, p.__storage);
---
> BitUnionBaseType<T> b;
> paramIn(cp, name, b);
> p = b;
96,99c98,101
< template <typename BitUnion>
< bool optParamIn(CheckpointIn &cp, const std::string &name,
< BitfieldBackend::BitUnionOperators<BitUnion> &p,
< bool warn = true)
---
> template <typename T>
> bool
> optParamIn(CheckpointIn &cp, const std::string &name,
> BitUnionType<T> &p, bool warn = true)
101c103,109
< return optParamIn(cp, name, p.__storage, warn);
---
> BitUnionBaseType<T> b;
> if (optParamIn(cp, name, b, warn)) {
> p = b;
> return true;
> } else {
> return false;
> }