In 1.33.0 split_member uses:

 

    template<class Archive, class T>

    struct member_saver {

        static void invoke(

            Archive & ar,

            const T & t,

            const unsigned int file_version

        ){

            access::member_save(ar, t, file_version);

        }

    };

 

And member_save looks like:

 

    template<class Archive, class T>

    static void member_save(

        Archive & ar,

        //const T & t,

        T & t,

        const unsigned int file_version

    ){

        t.save(ar, file_version);

    }

 

So the compiler complains about converting a const T to a non const T.  It's curious that the source has the const T& in member_save commented out.  Is there a workaround for this? Or is it planned to be fixed in the next release?