Error del compilador con el parámetro de la plantilla = void* - página 2

 
fxsaber:

Por desgracia, nunca vi un ejemplo de cómo utilizarlo.

Bueno, por ejemplo, crear un array de objetos de diferentes tipos.
 
Vladimir Simakov:
Bueno, por ejemplo, crear un array de objetos de diferentes tipos.

Yo mismo he dado un ejemplo de ello. Pero entonces, ¿cómo referirse a ellos si no se conocen los tipos?

 
fxsaber:

Yo mismo he dado un ejemplo de ello. Pero entonces, ¿cómo dirigirse a ellos si no se conocen los tipos?

¿Cómo no voy a saberlo? Yo mismo los puse ahí, es decir, su lista es definitiva. Puedes hacerlo probando los tipos de esta lista, dynamic_cast para ayudarte.

 
Vladimir Simakov:

¿Cómo no voy a saberlo? Yo mismo los puse ahí, es decir, su lista es finita. Puede utilizar dynamic_cast para ayudar.

Bueno, ¡esa es una solución de muleta!

 

En MQ, por ejemplo, ArrayCopy se basa en void*. Cuando tengo que modificarlo, utilizo una plantilla. Y todo funciona, por supuesto, y estrictamente por tipos especificados.

Por eso aún no encuentro ningún script conveniente para el vacío*. Aparentemente, veo las posibilidades que ofrece esta construcción de forma limitada.

 
fxsaber:

Bueno, ¡esa es una solución de muleta!

Bueno, si el hombre lo quiere, ¿por qué arruinarlo? Y entonces, ¿por qué es una muleta? Si los recursos libres lo permiten, ¿por qué no? Así, Java es una gran muleta, y el ensamblador manda. Al final tenemos ganas pero no posibilidades, y no está claro por qué, y no es bueno, deberíamos arreglarlo.

 
Vladimir Simakov:

Bueno, si una persona lo quiere, entonces por qué arruinarlo. Y entonces, ¿por qué estropearlo? Si los recursos libres lo permiten, entonces por qué no. Por lo tanto, Java es una gran muleta, y el ensamblador generalmente manda. Al final tenemos ganas pero no posibilidades, y no está claro por qué, y no es bueno, deberíamos arreglarlo.

No contra este chip. Preguntar para aprender cosas nuevas y útiles. Por eso estoy en el foro en muchos sentidos.

 
fxsaber:

En MQ, por ejemplo, ArrayCopy se basa en void*. Cuando tengo que modificarlo, utilizo una plantilla. Y todo funciona, por supuesto, y estrictamente por tipos especificados.

Pero no copia ningún puntero, sólo los compatibles que se lanzan implícitamente. Todas las funciones definidas por el usuario solían funcionar así también y era muy conveniente. Ahora se trata de trabajar con plantillas o de volver a copiar en un nuevo array. No está claro quién quería reducirlo y por qué.

 
Alexey Navoykov:

Pero no copia ningún puntero, sino sólo los compatibles que se lanzan implícitamente. Antes todas las funciones de usuario también funcionaban así y era muy cómodo. Ahora tienes que hacer cualquier problema con las plantillas o copiarlo en un nuevo array. No sé quién ha querido reducirlo y por qué.

¿Cómo era posible antes? Parece que los tipos siempre debían coincidir.

 
Alexey Navoykov:

Error de compilación. Bild 1961.

Y en 1961x32 todo funciona... ¡bien!