¿Cómo se puede realizar la auto funcionalidad de palabra clave sin usar el estándar C++ 0x?Plantilla automática hecha a mano (sin usar C++ 0x)
for(std::deque<std::pair<int, int> >::iterator it = points.begin();
it != points.end(); ++it)
{
...
}
Tal vez dicha clase:
class AUTO
{
public:
template <typename T1>
AUTO(T1);
template <typename T2>
operator T2();
};
Con tal uso:
for(AUTO it = points.begin(); it != points.end(); ++it)
{
...
}
Pero, T1 y T2 son diferentes. Cómo mover información sobre T1 a operador T2()? ¿Es realmente posible?
Pienso en la implementación solo para usar en for for foreach. La palabra clave auto de C++ 0x tiene muchos usos ... Gracias por el enlace, lo leeré. – k06a
@ k06a: Existe una fuerte oposición en C++ para implementar algo como una nueva característica de idioma cuando se puede implementar en una biblioteca. Entonces, si algo termina en el lenguaje propiamente dicho, puede estar bastante seguro de que nadie ha encontrado la forma de hacerlo correctamente en una biblioteca. (Por ejemplo, lo que 'std :: function' y' std :: bind' do está incorporado en el lenguaje en muchos otros lenguajes, pero es una función de biblioteca en C++.) – sbi
Siempre me he preguntado por qué BOOST_FOREACH es un pequeño porcentaje lejos de un bucle "codificado a mano". –