[C++-sig] pickle support patches checked in

Ralf W. Grosse-Kunstleve rwgk at yahoo.com
Mon Jul 22 22:48:00 CEST 2002


--- David Abrahams <david.abrahams at rcn.com> wrote:
> > Hm, maybe it would be nice to generate a different compile-time error
> > "must_inherit_from_pickle_group" just to give a better clue. Could this
> be
> > done?
> 
> Just pass a pointer to the group to a function accepting pickle_group const
> volatile*

Here is what I did:

Index: boost/python/object/pickle_support.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/python/object/pickle_support.hpp,v
retrieving revision 1.4
diff -r1.4 pickle_support.hpp
15a16,17
> struct pickle_suite;
>
20a23
>   inline void must_be_derived_from_pickle_suite(pickle_suite const&) {}

Index: boost/python/class.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/python/class.hpp,v
retrieving revision 1.29
diff -r1.29 class.hpp
202a203
>       error_messages::must_be_derived_from_pickle_suite(PickleSuiteType());

With EDG this comes out great:

cxx: Error: /tmp_mnt/net/boa/home1/rwgk/boost_mpl_ublas/boost/python/class.hpp,
line 203: #312 
          no suitable user-defined conversion from
          "<unnamed>::world_pickle_suite" to
          "const boost::python::pickle_suite" exists
          detected during instantiation of "boost::python::class_<T, X1, X2,
                    X3>::self &boost::python::class_<T, X1, X2,
                    X3>::def_pickle(PickleSuiteType) [with T=<unnamed>::world,
                    X1=boost::python::detail::not_specified,
                    X2=boost::python::detail::not_specified,
                    X3=boost::python::detail::not_specified,
                    PickleSuiteType=<unnamed>::world_pickle_suite]" at line 58
                    of "pickle1.cpp"
      error_messages::must_be_derived_from_pickle_suite(PickleSuiteType());
--------------------------------------------------------^

You suggested "volatile const*" as opposed to the "const&" that I am using. Is
the "volatile" essential?

Ralf


__________________________________________________
Do You Yahoo!?
Yahoo! Health - Feel better, live better
http://health.yahoo.com





More information about the Cplusplus-sig mailing list