Cita:
Iniciado por RootK Veo que para ese entonces (2009) se van a poder implementar como lo que hace C# del framwork 2.0 llama generics...
Lo digo porque C++0x tendrá algo como ésto:
Cosa que con C# se implementa de forma similar con generics, algo como ésto:
Tambien pienso que el nombre de C++0x quien sabe para ese entonces como se vaya a llamar...
Bueno RootK me has hecho saltar aquí, es una mentira muy grande lo que has dicho.
C++ tiene "templates" desde siempre, y es a lo que hago mención cuando he hablado de "programación genérica" (genérica->generics). Es el primer lenguaje que lo implementa de forma tan potente,
y son su punto fuerte.
Por otra parte,
los generics de C# son bastante menos potentes que los de C++, se simplificaron para hacer la vida más sencilla.
Y como guinda,
la librería estándar de C++, la STL, está construida toda ella sobre templates, ejemplo clásico:
std::vector<int> unvector();
Pero no se restringe a esto, busca sobre librerías como Boost, metaprogramming, y mil cosas más que hay exageradamente complicadas sobre la programación con templates de C++.
C# no ha hecho más que heredarlo de C++ y simplificarlo, como con la mayoría de las cosas, para ayudar a su uso.
En cambio, C++0x va a complicarlo aún más.
El ejemplo que has puesto antes de C#, en C++ se ha escrito
desde que nació así:
Código:
template<typename T>
class {
T * items;
int count;
public:
void push(T item) { ... }
void pop() { ... }
}