const contra #define

const contra #define

¿qué debo usar? ¿const o #define?

La evolución del lenguaje C++ a lo largo de los años, lo ha ido distanciando paulatinamente de su predecesor, el lenguaje C. Pese a este distanciamiento se han mantenido cercanos con el fin de conservar un cierto grado de compatibilidad. La cercanía entre estos dos lenguajes ha dado lugar a que en ocasiones, prácticas habituales del lenguaje C pasen a ser habituales en C++.

Por ejemplo, los programadores C suelen preferir el uso de la directiva de Preprocesador #define para definir valores constantes, mientras que en C++ existe un mecanismo equivalente con el uso de la palabra reservada const. Este artículo se centra en el uso constantes, y del uso de #define para crear valores constantes en código, no se mencionarán otros usos de  #define.

Preferir usar #define para crear constantes en lugar de usar variables const también es una costumbre entre algunos programadores de C++.

Pero ¿es esto una mala práctica? ¿cuándo debe usarse #define y cuándo const?
Lee el resto de esta entrada

La leyenda del pre-incremento y post-incremento

¿Pre incremento o Post incremento?

El dilema es… ¿Pre-incremento o Post-incremento?

Llevo varios años en el mundo de la programación; y casi desde el primer momento que empecé a programar con C++, he oído que a mi alrededor se formulaba una pregunta recurrentemente:

¿Qué es más eficiente? ¿El Pre-Incremento o el Post-Incremento?

Antes de seguir, quisiera anotar que el Incremento (con el operador ++) y el Decremento (con el operador –) son equivalentes en esta cuestión, por lo que a partir de ahora me referiré a Pre-Operar y Post-Operar variables.

Durante años he podido ver como esta cuestión daba lugar a acalorados debates; los más curiosos podrán ver en un par de minutos de búsqueda e investigación que se han escrito ríos de tinta sobre el tema y una investigación un poco más extensa nos mostrará que no existe un consenso claro respecto al tema (de haberlo ¡no valdría la pena escribir sobre ello!) la comunidad de programadores está dividida en dos corrientes de pensamiento:

  • Algunos programadores aseguran que Pre-Incrementar es más eficiente que Post-Incrementar.
  • Algunos programadores afirman que no existe diferencia de rendimiento entre Pre y Post incrementar una variable.

Pero ¿Quién tiene razón?; la respuesta no podía ser más sorprendente: ¡Ambas respuestas son correctas!

Lee el resto de esta entrada

¿Qué es C++11? Historia del Lenguaje C++

Ultimamente me paso el día hablando de C++11 con otros programadores, hablando de sus bondades y características pero, no todos los programadores de C++ saben lo que es; no todos están al día de las novedades en el mundo de la programación en general, ni las novedades en el mundo de C++ en concreto.

Debo admitir que cuando empecé a trabajar como programador, tampoco sabía lo que es un Dialecto de Lenguaje de Programación ni que un lenguaje de programación evoluciona con el tiempo y es revisado continuamente por expertos para mejorarlo día a día.

Después de investigar y recoger información, puedo intentar responder a la pregunta:

¿Qué es C++11?

Es la cuarta revisión del Lenguaje de Programación C++, no se llama C++4 porque las revisiones no se numeran por el orden de revisión si no por el año en que los chicos de la Organización Internacional para la Estandarización (ISO) dan el visto bueno a la revisión del lenguaje (también conocida como Dialecto del Lenguaje de Programación).

C++ ya tiene una larga historia; ya puestos a hablar de las revisiones  y cambios de C++ a lo largo del tiempo, tal vez podríamos pensar en profundizar el tema y preguntarnos

¿Cómo empezó todo?. Lee el resto de esta entrada

Código más seguro con los nuevos Enumerados C++11

strong enums

Nuevos enumerados C++, también conocidos como “strong enums”

C++11 ofrece algunas novedades enfocadas a producir código menos propenso a errores.  Usar estos nuevos mecanismos de control, nos ayudará a que el código sea más seguro, permitiendo entre otras cosas, detectar en tiempo de compilación errores que de otra manera, surgirían en tiempo de ejecución y consiguiendo también limitar los comportamientos inesperados.

Entre las facilidades para hacer más seguro el código, encontramos varias enfocadas a cualificar adecuadamente los datos; esto es, evitar que un dato sea interpretado con un tipo cuando se espera otro o bien, que un tipo se convierta a otro sin control.

Una de estas novedades es el  nuevo tipo de  Enumerado C++11, el Enumerado-Clase (llamado así porque tiene características de Enumerado y de Clase).

Lee el resto de esta entrada

codexpert blog

I see native code

Sutter’s Mill

Herb Sutter on software, hardware, and concurrency

Katy's Code

1 Expert Developer is Equal to 3 Normal Developers

Andrzej's C++ blog

Guidelines and thoughts about C++

C++Next

The next generation of C++

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.