He leído sobre listas de tipos en 'Modern C++ Design' y lo entendí como una especie de unión para tipos. Al poner tipos diferentes no relacionados en una lista de tipos, se puede usar para representar más de un tipo a la vez, sin herencia. Probé la lista de tipos en algunas funciones simples con tipos primitivos, pero no pude conseguir que ninguna de ellas funcionara.Cómo utilizar las listas de tipos
¿Alguien podría decirme si mi interpretación de las listas de tipos es correcta y dar un ejemplo simple del mundo real de cómo usar las listas de tipos en el código promedio diario? Gracias por adelantado.
Btw, estoy usando Windows y Visual Studio 2005 y su compilador.
EDITAR: mis ejemplos se han ido, uso un proyecto de recinto de seguridad en vs para probar esas cosas. Pero fue muy parecidos a codificar en Dobbs tutorial:
void SomeOperation(DocumentItem* p)
{
if (TextArea* pTextArea = dynamic_cast<TextArea*>(p))
{
... operate on a TextArea object ...
}
else if (VectorGraphics* pVectorGraphics =
dynamic_cast<VectorGraphics*>(p))
{
... operate on a VectorGraphics object ...
}
else if (Bitmap* pBitmap = dynamic_cast<Bitmap*>(p))
{
... operate on a Bitmap object ...
}
else
{
throw "Unknown type passed";
}
}
Esto funciona, pero no veo la ventaja sobre la herencia que es capaz de hacer lo mismo. Y el lanzamiento dinámico no funciona en los tipos primitivos. ¿Es posible utilizarlo como valor de retorno como:
typedef Typelist<int, string> mylist
mylist myfunction() {
if(foo == bar)
return 5;
return "five";
}
Agregue un ejemplo del código que no funcionó a su pregunta. –