Febrero 25, 2010
La palabra reservada auto es casi con toda seguridad la más inútil de todo el lenguaje C (seguida de lejos por register. Tanto es así que mucha gente ni siquiera sabe que existe porque no la ha visto nunca. Una variable local se declara auto para hacerla automática, es decir que se crea en el punto de declaración y se destruye al salir del bloque declarado. Pero una variable local ya es automática por defecto, a no ser que se defina static o extern, por lo que auto no se usa nunca.
La nueva versión de C++, C++0x, le da un significado nuevo y totalmente diferente a esta palabra reservada, implementando una de las características más deseadas por los ususarios del lenguaje: la deducción automática de tipos.
(más…)
Filed under:
C++0x por rodrigo
Febrero 23, 2010
La regla de los cuatro miembros no se refiere a alguna misteriosa deidad tántrica, sino al hecho de que en C++ , una clase o estructura sin ninguna función miembro declarada expresamente posee cuatro funciones miembro implícitas: el constructor por defecto, el constructor de copia, el operador de asignación y el destructor. Esto es así para mantener la compatibilidad con C
(más…)
Filed under:
C++, C++0x por rodrigo
Febrero 21, 2010
Una de las críticas habituales de C++ está relacionada con las enumeraciones y se debe principalmente a la herencia de C. Para resolver estas cuestiones, en C++0x se añaden varias nuevas formas de definir enumeraciones. Estos cambios pueden no parecer especialmente significativos, sobre todo comparándolos con otros, pero en mi opinión es importante conocer la nueva sintaxis, aunque solo sea para entender la documentación en la que aparecen.
(más…)
Filed under:
C++0x por rodrigo
Febrero 20, 2010
El otro día estaba haciendo un Sudoku con lápiz y papel, cuando se me ocurrió pensar: “Si fuera un ordenador terminaría esto en un momento”. Y después: “Pero si para eso se inventó el Python”. En el improbable caso de que no sepas cómo funciona un Sudoku puedes leer una explicación estupenda en la Wikipedia.
(más…)
Filed under:
Python por rodrigo
Febrero 19, 2010
Si alguna vez has utilizado (o intentado utilizar) la clase std::auto_ptr probablemente habrás notado que es una clase rara. Pero ya no hay que preocuparse por ella porque en C++0x ha sido marcada oficialmente como obsoleta. La funcionalidad que aportaba (o lo intentaba) esta clase la proporciona con ventaja la nueva std::unique_ptr.
(más…)
Filed under:
C++0x por rodrigo
Febrero 18, 2010
En el post anterior describía cómo las referencias a R-valor permiten definir un constructor de movimiento y un operador de movimiento. Una clase que implementa ambos se llama clase movible.
(más…)
Filed under:
C++0x por rodrigo
Febrero 15, 2010
En un post anterior comentaba que en C++ no se puede vincular una referencia a un objeto temporal. En C++0x existe un nuevo tipo de referencias diseñadas para hacer precisamente esto: las referencias a R-valor. Este cambio, aparentemente sutil, es uno de los más importantes del nuevo estándar, y que condiciona muchos de los añadidos adicionales. Por eso es importante comprenderlas bien.
(más…)
Filed under:
C++0x por rodrigo
Febrero 14, 2010
Con frecuencia me preguntan qué entorno de desarrollo utilizo para programar en Linux, y se sorprenden cuando respondo que uso Vim para editar el código y Automake para compilarlo. En este post explicaré lo mínimo necesario para hacer funcionar a Automake.
(más…)
Filed under:
GNU, Linux, Programación por rodrigo
Febrero 13, 2010
profile, bash_profile, bashrc… Hay tantos ficheros de inicialización que lee bash cuando arranca que resulta complicado saber para qué está cada uno de ellos y en dónde escribir nuestros cambios. Voy a ver si consigo aclarar un poco el embrollo.
(más…)
Filed under:
GNU, Linux por rodrigo
Febrero 12, 2010
Quiero protestar desde aquí contra la costumbre, bastante extendida, de comparar valores booleanos directamente con las constantes true y false.
Es decir:
¡No tiene sentido! El resultado de comparar una expresión booleana con true es siempre la propia expresión.
(más…)
Filed under:
C++ por rodrigo