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

 

¿Existe por casualidad un código piramidal de partidarios? En todo caso, seré el primero. )))))


 
Ilya Malev:

¿Existe por casualidad un código piramidal de partidarios? En todo caso, seré el primero. )))))


Esto podría atribuirse al campo de los partidarios del código horizontal.

 
Dmitry Fedoseev:

Esto puede atribuirse al campo de los partidarios del código horizontal.

Estoy de acuerdo, fue un esfuerzo pobre. Los mejores ejemplos fueron tan trascendentes que no sobrevivieron a la transición a nuestra realidad mortal...

 
Ilya Malev:

¿Existe por casualidad un código piramidal de partidarios? En todo caso, seré el primero. )))))


Esto es una ofuscación.

 
Stanislav Korotky:

Es una ofuscación.

Sí, estoy muy lejos de ti. Tengo, por así decirlo, algo por lo que luchar ))

 
pavlick_:

En general, sí, puede hacerlo.

Si sin envoltura no se borra, con envoltura se borra, todo está clarísimo.

ZS: pero si lo hiciera, lo haría lo más parecido posible a la biblioteca estándar plus (nombres, comportamiento, etc.), así que no hay opción para mí. ¿Por qué molestarse en crear otra especificación cuando todo está ya escrito?

- La creación de estructuras automáticas dentro de la POO dinámica no tiene sentido

- Las estructuras dinámicas deben dividirse en aquellas creadas para un proceso específico (como una consulta sobre una selección) o como una selección de un conjunto de elementos existente (y puede haber tipos mixtos)

- Hasta ahora puedo ver una solución en la contabilización del número de referencias "propias" a un objeto, no es necesario crear envoltorios sobre él (no estoy muy seguro de cómo eso resolvería el problema), pero tendría que duplicar el mecanismo de punteros ya existente en µl, añadiendo mis métodos a ellos, al menos incluyendo el contador de referencias (se discutió en su artículo de hubra por cierto, lo estaba leyendo hace un par de días, cuando estaba buscando una solución sobre los punteros y me di cuenta de que ya llegué a la misma solución yo mismo).

- Intentaré realizarlo todo, si sale algo que merezca la pena, lo publicaré en el foro y/o en kodobase de todas formas :).

 
Ilya Malev:

- Crear estructuras automáticas dentro de una POO dinámica es un sinsentido

- Las estructuras dinámicas deben dividirse en aquellas creadas para un proceso específico (como una consulta sobre una selección) o como una selección de un conjunto de elementos existente (y puede haber tipos mixtos)

- Hasta ahora puedo ver una solución en la contabilización del número de referencias "propias" a un objeto, no es necesario crear envoltorios sobre él (realmente no puedo ver cómo eso resolvería el problema), pero tengo que duplicar el mecanismo de punteros ya existente en µl, añadiendo mis métodos a ellos, al menos incluyendo el contador de referencias (se discutió en su artículo de hubra por cierto, lo estaba leyendo hace apenas un par de días, cuando busqué la solución sobre los punteros y me di cuenta de que ya llegué a la misma solución yo mismo).

- Intentaré poner en práctica todo eso y si sale algo bueno, lo publicaré en el foro y/o en kodobase igualmente :)

Muy interesante. Cansado de pi@#$holes.

 
O mejor aún, no lo hagas. No publicar nada...
 
Ilya Malev:

Bueno, nadie prohíbe pasar una opción adicional al crear un array - si se borran los elementos al borrarlo o no, y hacer que esté activada o desactivada por defecto (a tu gusto). Al fin y al cabo, nunca se puede adivinar si se quieren borrar elementos o no)).

Así que has escrito un array de este tipo y te llevas una sorpresa: ¿cómo desactivar el operador de copia=() y el constructor de copia (por defecto está ausente en µl de todos modos) en un array de punteros que requieren ser borrados? Esto dejará claro que el parámetro vía constructor es basura. Se plantean dos ideas:

1. pasar el tipo con la declaración eliminada a través de los parámetros de la plantilla y hacerla miembro de la clase (y eso es un gasto innecesario de recursos).

2. pasar un puntero en un wrapper :) (sí, sí - ese maldito envoltorio).

3. se podría utilizar la especialización parcial para salir de ella, pero no existe.

En general, la biblioteca plus es una obra maestra, si crees que puedes escribir mejor, probablemente estés equivocado.

 
pavlick_:

0. Así que has escrito un array de este tipo y te encuentras con una sorpresa: ¿cómo desactivar la copia del operador=() y la copia del constructor (por defecto no está en µl de todas formas) en un array de punteros que requieren ser borrados? Esto dejará claro que el parámetro vía constructor es basura. Se plantean dos ideas:

1. pasar el tipo con la declaración eliminada a través de los parámetros de la plantilla y hacerla miembro de la clase (y esto es un gasto innecesario de recursos).

2. pasar una envoltura de puntero :) (sí, sí - ese maldito envoltorio).

3. Podrías usar la especialización parcial para salir de ella, pero no está ahí.

En general, la biblioteca plus es una obra maestra, si crees que vas a escribir mejor, probablemente estés equivocado.

Lo más probable es que lo sea, y es una obra maestra, pero escrita para una gama de tareas mucho más amplia que la necesaria para construir la mayoría de las CT sensatas. No considero variantes como las redes neuronales, el uso del procesador de gráficos y otros bailes con panderetas.

0. Te dije que los objetos dinámicos ya creados se transfieren. Se trata de objetos creados específicamente para la selección (hay que borrarlos después), o de referencias a objetos que se utilizan pero no se borran. El objeto lista no se encarga de crear. sólo de direccionar, acceder y almacenar mientras sea necesario.

1. ...

2. ...

3...

En resumen, hay que tener en cuenta las tareas específicas y detalladas, no las abstractas. Si hay que escribir algún gui, tampoco es eso a lo que me refiero. Un tipo en un hilo cercano parece haber escrito una bonita gui usando estructuras puras).