Es fácil dar un recipiente para obtener los iteradores asociados, ejemplo:Obtener tipo de contenedor a partir de (su) Tipo de iterador en C++ (STL)
std::vector<double>::iterator i; //An iterator to a std::vector<double>
Me preguntaba si es posible, dado un tipo iterador , para deducir el tipo del "contenedor correspondiente" (aquí supongo que para cada contenedor hay uno y solo un iterador (no const)).
Más precisamente, me gustaría un metafunción plantilla que funciona con todos los contenedores STL (sin tener que especializarse manualmente para cada contenedor individual) de tal manera que, por ejemplo:
ContainerOf< std::vector<double>::iterator >::type
evalúa a
std::vector<double>
¿Es posible? Si no, ¿por qué?
Gracias de antemano por cualquier ayuda!
¿Estás tratando de averiguar sobre el Concep de un iterador ? es decir, si es de acceso aleatorio? El STL usa etiquetas para esto. Por lo general, no hay ninguna razón para saber de dónde viene un iterador. – pmr
¿Sabe de antemano si tiene un iterador en uno de los 7 contenedores STL, o necesita una cláusula "else" también? – MSalters