Tema: C++ vs. C#
Ver Mensaje Individual
  #52 (permalink)  
Antiguo 03/04/2006, 15:50
MaxExtreme
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
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() { ... }
}