docs: def value_type(type_):
          """returns reference to `boost::shared_ptr` \
          or `std::shared_ptr` value type"""
          if not smart_pointer_traits.is_smart_pointer(type_):
              raise TypeError(
                  'Type "%s" is not an instantiation of \
                  boost::shared_ptr or std::shared_ptr' %
                  type_.decl_string)
          try:
              return internal_type_traits.get_by_name(type_, "element_type")
          except runtime_errors.declaration_not_found_t:
              return _search_in_bases(type_)