[python] [indexing] inconsistent reference to Container::value_type

Hello, First, thanks for the wonderful system. I recently used the indexing suite to wrap some of our (rather nonstandard) containers, which failed at first because the no_proxy_helper helper class refers to Container::value_type. The following diff allowed me to work around the problem: % diff indexing_suite_detail.hpp /usr/include/boost/python/suite/indexing/detail/indexing_suite_detail.hpp 487c487 < , is_pointer<BOOST_DEDUCED_TYPENAME Container::value_type>() ---
, is_pointer<BOOST_DEDUCED_TYPENAME ContainerElement::element_type>()
ContainerElement::element_type refers to Policies::data_type, which removes the need to modify the container source. After that, everything worked right away. On a related note, the fact that Policies is supposed to have a data_type typedef seems redundant with the Data template argument to the indexing_suite. Is there a situation in which the two types could be distinct? Thanks, Geoffrey

Geoffrey Irving wrote:
Hello,
First, thanks for the wonderful system. I recently used the indexing suite to wrap some of our (rather nonstandard) containers, which failed at first because the no_proxy_helper helper class refers to Container::value_type. The following diff allowed me to work around the problem:
% diff indexing_suite_detail.hpp /usr/include/boost/python/suite/indexing/detail/indexing_suite_detail.hpp 487c487 < , is_pointer<BOOST_DEDUCED_TYPENAME Container::value_type>() ---
, is_pointer<BOOST_DEDUCED_TYPENAME ContainerElement::element_type>()
ContainerElement::element_type refers to Policies::data_type, which removes the need to modify the container source. After that, everything worked right away.
On a related note, the fact that Policies is supposed to have a data_type typedef seems redundant with the Data template argument to the indexing_suite. Is there a situation in which the two types could be distinct?
The proper mailing list for boost.python is: C++-sig@python.org http://mail.python.org/mailman/listinfo/c++-sig I think that is correct. However, I'll need a test case to verify and test for your case. Let's continue this discussion in the boost.python list. Thanks! Regards, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net
participants (2)
-
Geoffrey Irving
-
Joel de Guzman