Me preguntaba si alguien sabe cuáles son los límites en el operador de conversión/conversión.¿Hay algún límite en los tipos en el operador de typecast?
Así, por ejemplo, que pueden tener los siguientes operadores de anulación:
class Test {
operator int() { return 0; };
operator int*() { return nullptr; };
}
Para una función regular, yo también podría tener un puntero al tipo de matriz. P.ej.
int (*MyFunc())[4] { return nullptr; };
Sin embargo, no sé cómo hacer lo mismo para el operador de conversión (o si es incluso legal de hacerlo). He intentado algunas variaciones diferentes y VS2010 y ninguno funciona. (Tales como :)
operator int (*())[4] { return nullptr; };
operator int(*)[4]() { return nullptr; };
No estoy seguro si esto es una limitación en VS2010 o si hay un límite general sobre los tipos que se pueden utilizar en el operador de conversión. Intenté buscar el estándar en línea sin suerte. ¿Alguien sabe? Antes de que alguien pregunte "¿por qué querrías hacer eso?", Es para código generado automáticamente. Aunque no anticipo que vaya a obtener un puntero para la entrada de matriz, me gustaría poder producir el código si es legal en C++.
Gracias. Eso ha respondido mi pregunta exactamente. –
¿Comentario anterior? – GManNickG