Hi, I've tried to build PyIlmBase with two different versions of Boost. Unfortunately, I got two different errors from imathmodule respectively.
With boost 1.50, I got compile error in add_arithmetic_math_functions() for IntArray2D, FloatArray2D and DoubleArray2D. For the detailed log messages, please refer to the attached txt file. With boost 1.48, the imathmodule is successfully compiled. But when I import it in python interpreter, I got runtime error during the invocation of PyIex::registerExc in imathmodule.cpp. As far as I know, it seems that the variable _baseExcTranslator from PyIex is not initialized properly. Has anybody run into similar issues? Thanks in advance. Shih-Chin
1>C:\boost\boost_1_50_0\boost/python/operators.hpp(212) : error C2784: 'Derived boost::operator +(Derived::difference_type,const boost::iterator_facade<Derived1,V1,TC1,Reference1,Difference1> &)' : could not deduce template argument for 'const boost::iterator_facade<Derived1,V1,TC1,Reference1,Difference1> &' from 'const PyImath::FixedArray2D<T>' 1> with 1> [ 1> T=int 1> ] 1> C:\boost\boost_1_50_0\boost/iterator/iterator_facade.hpp(506) : see declaration of 'boost::operator +' 1> C:\boost\boost_1_50_0\boost/python/operators.hpp(212) : while compiling class template member function 'PyObject *boost::python::detail::operator_l<op_add>::apply<L,R>::execute(PyImath::FixedArray2D<T> &,const PyImath::FixedArray2D<T> &)' 1> with 1> [ 1> L=PyImath::FixedArray2D<int>, 1> R=PyImath::FixedArray2D<int>, 1> T=int 1> ] 1> C:\boost\boost_1_50_0\boost/python/operators.hpp(60) : see reference to class template instantiation 'boost::python::detail::operator_l<op_add>::apply<L,R>' being compiled 1> with 1> [ 1> L=PyImath::FixedArray2D<int>, 1> R=PyImath::FixedArray2D<int> 1> ] 1> C:\boost\boost_1_50_0\boost/python/operators.hpp(89) : see reference to class template instantiation 'boost::python::detail::operator_l_inner<id,L,R>' being compiled 1> with 1> [ 1> id=op_add, 1> L=PyImath::FixedArray2D<int>, 1> R=PyImath::FixedArray2D<int> 1> ] 1> C:\boost\boost_1_50_0\boost/python/operators.hpp(156) : see reference to class template instantiation 'boost::python::detail::binary_op<id>::apply<T>' being compiled 1> with 1> [ 1> id=op_add, 1> T=PyImath::FixedArray2D<int> 1> ] 1> C:\boost\boost_1_50_0\boost/python/def_visitor.hpp(31) : see reference to function template instantiation 'void boost::python::detail::operator_<id,L,R>::visit<classT>(ClassT &) const' being compiled 1> with 1> [ 1> id=op_add, 1> L=boost::python::self_ns::self_t, 1> R=boost::python::self_ns::self_t, 1> classT=boost::python::class_<PyImath::FixedArray2D<int>>, 1> ClassT=boost::python::class_<PyImath::FixedArray2D<int>> 1> ] 1> C:\boost\boost_1_50_0\boost/python/def_visitor.hpp(67) : see reference to function template instantiation 'void boost::python::def_visitor_access::visit<boost::python::def_visitor<DerivedVisitor>,classT>(const V &,classT &)' being compiled 1> with 1> [ 1> DerivedVisitor=boost::python::detail::operator_<op_add,boost::python::self_ns::self_t,boost::python::self_ns::self_t>, 1> classT=boost::python::class_<PyImath::FixedArray2D<int>>, 1> V=boost::python::def_visitor<boost::python::detail::operator_<op_add,boost::python::self_ns::self_t,boost::python::self_ns::self_t>> 1> ] 1> C:\boost\boost_1_50_0\boost/python/class.hpp(226) : see reference to function template instantiation 'void boost::python::def_visitor<DerivedVisitor>::visit<boost::python::class_<W>>(classT &) const' being compiled 1> with 1> [ 1> DerivedVisitor=boost::python::detail::operator_<op_add,boost::python::self_ns::self_t,boost::python::self_ns::self_t>, 1> W=PyImath::FixedArray2D<int>, 1> classT=boost::python::class_<PyImath::FixedArray2D<int>> 1> ] 1> D:\source_build\openexr_git\openexr\PyIlmBase\PyImath\.\PyImathFixedArray2D.h(652) : see reference to function template instantiation 'boost::python::class_<W> &boost::python::class_<W>::def<boost::python::detail::operator_<id,L,R>>(const boost::python::def_visitor<DerivedVisitor> &)' being compiled 1> with 1> [ 1> W=PyImath::FixedArray2D<int>, 1> id=op_add, 1> L=boost::python::self_ns::self_t, 1> R=boost::python::self_ns::self_t, 1> DerivedVisitor=boost::python::detail::operator_<op_add,boost::python::self_ns::self_t,boost::python::self_ns::self_t> 1> ] 1> ..\..\PyImath\imathmodule.cpp(175) : see reference to function template instantiation 'void PyImath::add_arithmetic_math_functions<int>(boost::python::class_<W> &)' being compiled 1> with 1> [ 1> W=PyImath::FixedArray2D<int> 1> ] 1>C:\boost\boost_1_50_0\boost/python/operators.hpp(212) : error C2784: 'Derived boost::operator +(const boost::iterator_facade<Derived1,V1,TC1,Reference1,Difference1> &,Derived::difference_type)' : could not deduce template argument for 'const boost::iterator_facade<Derived1,V1,TC1,Reference1,Difference1> &' from 'PyImath::FixedArray2D<T>' 1> with 1> [ 1> T=int 1> ] 1> C:\boost\boost_1_50_0\boost/iterator/iterator_facade.hpp(499) : see declaration of 'boost::operator +' 1>C:\boost\boost_1_50_0\boost/python/operators.hpp(212) : error C2784: 'PyImath::FixedMatrix<T> PyImath::operator +(const T &,const PyImath::FixedMatrix<T> &)' : could not deduce template argument for 'const PyImath::FixedMatrix<T> &' from 'const PyImath::FixedArray2D<T>' 1> with 1> [ 1> T=int 1> ] 1> D:\source_build\openexr_git\openexr\PyIlmBase\PyImath\.\PyImathFixedMatrix.h(315) : see declaration of 'PyImath::operator +' 1>C:\boost\boost_1_50_0\boost/python/operators.hpp(212) : error C2784: 'PyImath::FixedMatrix<T> PyImath::operator +(const PyImath::FixedMatrix<T> &,const T &)' : could not deduce template argument for 'const PyImath::FixedMatrix<T> &' from 'PyImath::FixedArray2D<T>' 1> with 1> [ 1> T=int 1> ] 1> D:\source_build\openexr_git\openexr\PyIlmBase\PyImath\.\PyImathFixedMatrix.h(314) : see declaration of 'PyImath::operator +' 1>C:\boost\boost_1_50_0\boost/python/operators.hpp(212) : error C2784: 'PyImath::FixedMatrix<T> PyImath::operator +(const PyImath::FixedMatrix<T> &,const PyImath::FixedMatrix<T> &)' : could not deduce template argument for 'const PyImath::FixedMatrix<T> &' from 'PyImath::FixedArray2D<T>' 1> with 1> [ 1> T=int 1> ] 1> D:\source_build\openexr_git\openexr\PyIlmBase\PyImath\.\PyImathFixedMatrix.h(313) : see declaration of 'PyImath::operator +' 1>C:\boost\boost_1_50_0\boost/python/operators.hpp(212) : error C2676: binary '+' : 'PyImath::FixedArray2D<T>' does not define this operator or a conversion to a type acceptable to the predefined operator 1> with 1> [ 1> T=int 1> ]
_______________________________________________ Openexr-devel mailing list Openexr-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/openexr-devel