From Bugzilla Helper: User-Agent: Mozilla/5.0 (compatible; Konqueror/3.1; Linux) Description of problem: There is a known bug in the current Boost.Python releases, namely a missing 'typename' in /usr/include/boost/python/object/make_ptr_instance.hpp. It affects almost all usage of the Boost.Python library, and is very annoying. A very simple patch fixes this problem: It can be paraphrased as replacing "is_polymorphic" by "typename is_polymorphic" on line 40 of make_ptr_instance.hpp. diff -u -r python-old/object/make_ptr_instance.hpp python/object/make_ptr_instance.hpp --- python-old/object/make_ptr_instance.hpp 2003-04-22 14:35:28.000000000 +0200 +++ python/object/make_ptr_instance.hpp 2003-06-28 15:09:05.000000000 +0200 @@ -34,7 +34,7 @@ template <class U> static inline PyTypeObject* get_class_object_impl(U const volatile* p) { - PyTypeObject* derived = get_derived_class_object(is_polymorphic<U>::type(), p); + PyTypeObject* derived = get_derived_class_object(typename is_polymorphic<U>::type(), p); if (derived) return derived; return converter::registered<T>::converters.get_class_object(); This patch has also been applied by the Debian sid boost packagers. Thanks for your work. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: Try to compile a simple boost.python application or module, using g++ 3.2 or later. Actual Results: Compile error due to missing typename Expected Results: should have compiled fine. Additional info:
This is fixed in boost-1.31.0-4, which is the current Red Hat package for boost. best, benjamin