title: Python boost to-Python converter for class already registered second conversion method ignored
body: <p>I have next class (it was simplified):</p>
  
  <pre><code>class Value
  {
      public:
  
      Value();
      ~Value();
  
      void setValue(int value);
      void setValue(double value);
  }
  </code></pre>
  
  <p>I have python boost module:</p>
  
  <pre><code>#include &lt;boost/python.hpp&gt;
  #include &lt;boost/python/suite/indexing/vector_indexing_suite.hpp&gt;
  #include &lt;boost/python/suite/indexing/map_indexing_suite.hpp&gt;
  
  BOOST_PYTHON_MODULE(py_classes) 
  {
      typedef std::vector&lt;Value&gt; VectorClass;
  
      boost::python::type_info infoVectorValue = boost::python::type_id&lt;VectorClass&gt;();
  
      const boost::python::converter::registration* regVectorValue = boost::python::converter::registry::query(infoVectorValue);
  
      if (regVectorValue == NULL || (*regVectorValue).m_to_python == NULL) {
          class_&lt;VectorClass&gt;("std_vector_value")
              .def(vector_indexing_suite&lt;VectorClass&gt;());
      }
  }
  </code></pre>
  
  <p>Python script is called from dll library and uses container from pyd <code>py_classes</code>. When dll-library is called first time <code>std_vector_value</code> type is used without any problems.
  When I reload dll-library inside executable I get next warning: </p>
  
  <pre><code>RuntimeWarning: to-Python converter for class
  boost::python::detail::container_element&lt;class std::vector&lt;class Value,class std::allocator&lt;class Value&gt; &gt;,
  unsigned __int64,class boost::python::detail::final_vector_derived_policies
  &lt;class std::vector&lt;class Value,
  class std::allocator&lt;class Value&gt; &gt;,0&gt; &gt; 
  already registered; second conversion method ignored.
  return f(*args, **kwds)
  </code></pre>
  
  <p>So, it means:</p>
  
  <ul>
  <li>When dll-library is loaded first time, to-python converter is registered normally and python script can use <code>std_vector_value</code> type.</li>
  <li>When dll-library is reloaded (<code>FreeLibrary</code> and <code>LoadLibrary</code> functions), to-python converter trying to register one more time and checking if it was registered says that it has been already registered, but I can't use <code>std_vector_value</code> type from python.</li>
  </ul>
  
  <p>And this situation appears only for container classes (if I use <code>std::vector</code> or <code>std::map</code> - generally if I use <code>vector_indexing_suite</code> or <code>map_indexing_suite</code>), for class Value this warning doesn't appear.</p>
  
  <p>What am I doing wrong?</p>