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);
This patch has also been applied by the Debian sid boost packagers.
Thanks for your work.
Version-Release number of selected component (if applicable):
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.
This is fixed in boost-1.31.0-4, which is the current Red Hat package