Te estás disparando en el pie, al declararte privado. Usted se ha limitado el acceso y luego se preguntará por qué el código, donde las funciones externas necesitan acceso público, de repente deja de funcionar
Todo funciona bien para mí y funcionará bien. No es de mi incumbencia si no usas el privado.
Si se comparan las dos funciones, FileReadStruct sólo funciona con estructuras simples. Esta es una diferencia fundamental.
Hasta la Wikipedia lo sabe: los datossimples(POD)son un tipo de datos en los modernoslenguajes de programación de alto nivel que tienen una disposición rígida de los campos en la memoria y no requieren restricciones de acceso nicontrol automático.
Te contradices al escribir sobre estructuras simples y privadas: son cosas incompatibles
Hasta la Wikipedia lo sabe: los datossimples(POD)son un tipo de datos en los modernoslenguajes de programación de alto nivel que tienen una disposición de campos en memoria rígidamente definida y no requieren acceso restringido nicontrol automático.
El contexto estaba claro sin necesidad de leer la terminología. Simple - sin cadenas, matrices dinámicas u objetos de clase en cualquier nivel de anidamiento.
Con esta definición, simple puede ser siempre un campo de unión.
struct MqlTick2 : privateMqlTick {};
union UNION
{
MqlTick2 Tick;
uchar Bytes[sizeof(MqlTick2)];
};
voidOnStart()
{
UNION u;
ArrayInitialize(u.Bytes, 0); // обнулили u.Tick
}
privado no da ninguna garantía de inmutabilidad desde el exterior. Y eso es algo bueno.
El contexto era claro sin necesidad de leer la terminología. Simple - sin cadenas, matrices dinámicas y objetos de clase en cualquier nivel de anidamiento.
Con esta definición, simple puede ser siempre un campo de unión.
privado no garantiza la inmutabilidad desde el exterior. Y esto es algo bueno.
Ya se empieza a confundir lo elemental - la inmutabilidad es const, no privada
A mí me funciona bien y seguirá haciéndolo. Si no usas el privado, no es asunto mío.
Si usas {} en lugar de ZeroMemory - no puede funcionar perfectamente - te lo mostré con un ejemplo concreto - no hay puesta a cero (pero todavía puedes pensar lo contrario)
Si usas {} en lugar de ZeroMemory - no puede funcionar perfectamente - te lo mostré con un ejemplo concreto - no hay puesta a cero (pero todavía puedes pensar lo contrario)
Para la unión inicializamos sólo el primer miembro, intercambiamos los campos y la prueba se ejecutará. Consideremos si debemos cambiar el comportamiento en detrimento de la velocidad para que sea como la mayoría de los usuarios esperan.
El archivo... aparecieron cuando la privacidad y la constancia no existían, no pensamos aún en cambiar este comportamiento, ya que no lo consideramos crítico.
El archivo... aparecieron cuando la privacidad y la constancia no existían, no pensamos aún en cambiar este comportamiento, ya que no lo consideramos crítico.
Y no es necesario cambiar el comportamiento de las funciones existentes - basta con añadir nuevas funciones propias (con algún prefijo/sufijo) y declarar obsoletas las anteriores con el correspondiente aviso
Te estás disparando en el pie, al declararte privado. Usted se ha limitado el acceso y luego se preguntará por qué el código, donde las funciones externas necesitan acceso público, de repente deja de funcionar
Todo funciona bien para mí y funcionará bien. No es de mi incumbencia si no usas el privado.
A mí me funciona bien y seguirá haciéndolo. No es de mi incumbencia si no usas el privado.
Te contradices: las estructuras simples y lo privado son cosas incompatibles.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Peculiaridades de mql5, consejos y trucos
fxsaber, 2021.11.17 07:53
Si se comparan las dos funciones, FileReadStruct sólo funciona con estructuras simples. Esta es una diferencia fundamental.
Te contradices al escribir sobre estructuras simples y privadas: son cosas incompatibles
El contexto estaba claro sin necesidad de leer la terminología. Simple - sin cadenas, matrices dinámicas u objetos de clase en cualquier nivel de anidamiento.
Con esta definición, simple puede ser siempre un campo de unión.
privado no da ninguna garantía de inmutabilidad desde el exterior. Y eso es algo bueno.El contexto era claro sin necesidad de leer la terminología. Simple - sin cadenas, matrices dinámicas y objetos de clase en cualquier nivel de anidamiento.
Con esta definición, simple puede ser siempre un campo de unión.
privado no garantiza la inmutabilidad desde el exterior. Y esto es algo bueno.Ya se empieza a confundir lo elemental - la inmutabilidad es const, no privada
Ya estás empezando a confundirte con lo elemental: la inmutabilidad es const, no privada
Simplemente no entendiste lo que se quería decir. Tal vez no me esté explicando bien. Ya no importa.
A mí me funciona bien y seguirá haciéndolo. Si no usas el privado, no es asunto mío.
Si usas {} en lugar de ZeroMemory - no puede funcionar perfectamente - te lo mostré con un ejemplo concreto - no hay puesta a cero (pero todavía puedes pensar lo contrario)
Si usas {} en lugar de ZeroMemory - no puede funcionar perfectamente - te lo mostré con un ejemplo concreto
Sólo soy perfectamente consciente de qué, dónde y por qué lo aplico. La peculiaridad fue expresada. No había ganas de discutir los gustos.
Sólo soy perfectamente consciente de qué, dónde y por qué lo aplico. Los detalles fueron expresados. No había ganas de discutir los gustos.
Las razones para no utilizarlo se expresaron en consecuencia
Si usas {} en lugar de ZeroMemory - no puede funcionar perfectamente - te lo mostré con un ejemplo concreto - no hay puesta a cero (pero todavía puedes pensar lo contrario)
Para la unión inicializamos sólo el primer miembro, intercambiamos los campos y la prueba se ejecutará.
Consideremos si debemos cambiar el comportamiento en detrimento de la velocidad para que sea como la mayoría de los usuarios esperan.
El archivo... aparecieron cuando la privacidad y la constancia no existían, no pensamos aún en cambiar este comportamiento, ya que no lo consideramos crítico.
El archivo... aparecieron cuando la privacidad y la constancia no existían, no pensamos aún en cambiar este comportamiento, ya que no lo consideramos crítico.
Y no es necesario cambiar el comportamiento de las funciones existentes - basta con añadir nuevas funciones propias (con algún prefijo/sufijo) y declarar obsoletas las anteriores con el correspondiente aviso