2011-02-24 26 views

Respuesta

4

No conozco esta metafunción.

No todos los iteradores tienen un const_iterator correspondiente. P.ej. insert_iterator. Entonces tal metafunción necesitaría decidir qué va a hacer en tales casos.

0

puedo pensar en algo para una reverse_iterator: el uso de la función de miembro de la basedecltype, se podría extraer el tipo de retorno para volver a la iterator.

Sin embargo, no hay tal función para iterator/const_iterator, por lo que es difícil ver cómo se podría lograr esto, a menos que proporcione un typedef interno o requiera especialización explícita.

0

Creo que una solución general a su problema (y que también sería portátil no es posible). Al menos no me puedo imaginar uno :-).

El problema difícil aquí es que el contenedor define el tipo const_iterator. Para llegar al tipo const_iterator para el contenedor, debe determinar el tipo de contenedor.

Sin embargo, si comienza con el tipo de iterador del contenedor como parámetro de metafunción, no es posible recuperar el tipo de contenedor.

Para T (s) a conocer lo desea se puede lograr sin embargo ...

0

no creo que esto es posible ya que no hay ninguna asignación de frecuencia bien definida entre los tipos de iterador. Por ejemplo, dos contenedores podrían compartir el tipo de iterador no const, pero tienen diferentes iteradores. En general, solo puede asignar tipos de contenedor a tipos de iterador, pero no entre tipos de iterador o desde un tipo de iterador a un tipo de contenedor.

Cuestiones relacionadas