[C++-sig] Trying to clone (again), with VC8

Paul F. Kunz Paul_Kunz at slac.stanford.edu
Thu Feb 23 01:09:03 CET 2006


   I'm having trouble with clone, again, but this time only with
VC-8.0.  I get the following error message ...

;; This buffer is for notes you don't want to save, and for Lisp evaluation.
;; If you want to create a file, visit that file with C-x C-f,
;; then enter the text in that file's own buffer.

Compiling...
FunctionWrap.cxx
..\..\python\FunctionWrap.cxx(188) : error C2664: 'boost::implicit_cast' : cannot convert parameter 1 from 'boost::python::detail::method_result' to 'boost::python::api::object'
        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

The code is

clone () const
{
#ifndef HAVE_OLD_PYTHON
  PyGILState_STATE state = PyGILState_Ensure ();

  object py_result;

  if (override clone = this->get_override("clone")) {
     try {
	// The Python class author overrode clone; do
	// whatever she says
	py_result = boost::implicit_cast < object > ( clone() );
     } catch ( error_already_set & ) {

The same code works for gcc 3.2, and 4.0. on Linux and VC 7.1 on
Windows with Boost_1_32.   Neither Boost version 1_32_0 nore 1_33_1
works for VC 8.0.

Any ideas?



More information about the Cplusplus-sig mailing list