Below you will find pages that utilize the taxonomy term “c++”
October 25, 2019
Curso de plantillas en C++: primeros pasos
En la entrada anterior introdujimos por encima las plantillas. Seguro que generó más dudas que otra cosa, así que vamos a empezar a ver chicha código.
¿Qué resuelven las plantillas? En lenguajes como C o Pascal implementamos algo tan básico como una lista enlazada tal que así:
En el caso 1, el problema es que hay que hacer una implementación por cada tipo de dato que queramos. Esto es bastante esfuerzo y, sobre todo, mucho trabajo de mantenimiento en caso de problemas.
read moreOctober 17, 2019
Curso de plantillas en C++: qué son las plantillas y para qué sirven
Las plantillas en C++ son un mecanismo que nos pertite crear tipos y funciones dependientes de otros tipos y valores no definidos. El mejor modo de entenderlo es pensando en un formulario, por ejemplo, el típico formulario de una administración pública, donde hay un montón de texto y huecos que rellenar. Cada hueco recibe un valor. La plantilla es parecido, es definir un tipo o función donde dejamos huecos para ser rellenados más tarde.
read moreFebruary 13, 2015
Tratamiento de cadenas en C
Cuando empezamos a programar en C una de las cosas que probablemente más nos cuesta controlar es el tratamiento de cadenas.
El lenguaje C es de bastante bajo nivel, por lo que sus tipos de datos básicos son muy cercanos a lo que la máquina puede utilizar. Los ordenadores no entienden de cadenas, pero sí de direcciones de memoria. De hecho, no existe un tipo de cadena, sino que se usan arrays de bytes.
read moreFebruary 11, 2015
Pseudo lambdas con C
Últimamente se lleva mucho el tema de las funciones lambda y los closures en los lenguajes modernos. Un ejemplo es que en C++, desde la versión de 2011, ya las incorpora. Igualmente, otros lenguajes, como Ruby, Groovy o Rust ya han sido diseñados con esta característica.
Advertencia: el código que vamos a mostrar a continuación hace uso de extensiones de GNU C. Para ser exactos, hace uso de Statement Expressions y de Nested Functions.
read moreSeptember 4, 2014
Concurso de C «a pelo»
Recientemente surgió en una newsletter de O’Reilly un concurso que me pareció bastante curioso. Las bases eran las siguientes:
It seems like a new language is spawned every day, but the old tried-and-true warriors of the code world continue to soldier on. This week, the specification for C++ version 14 was frozen, and it includes such features as enhanced lambda expressions (because all the cool languages are doing it). In honor of this momentous event, we’re running a little contest to test your chops with the bare C.
read moreApril 24, 2014
Curiosidades de C++
Ayer trasteando con el compilador de C++ descubrí una cosa nueva sobre cómo funciona por dentro.
Si compilamos el siguiente programa y lo ejecutamos veremos que falla con un bonito SIGSEGV:
El motivo es que, para empezar, hay dos estructuras que son diferentes pero se llaman igual. El constructor de dichas estructuras no deja de ser una función, por lo que en cada fichero objeto se generará una función para construir la estructura.
read moreMay 10, 2011
Código ofuscado
Muchos de los que leen este blog seguro que ya saben a qué me refiero por código ofuscado. Si es ese el caso, probablemente lo que cuente a continuación ya lo sepas. Para los demás, si os apetece ver las cosas que un friki de la programación puede hacer cuando se aburre, continúa leyendo.
El código ofuscado es, según la Wikipedia el «[..] acto deliberado de realizar un cambio no destructivo, ya sea en el código fuente de un programa informático o código máquinacuando el programa está en forma compilada o binaria, con el fin de que no sea fácil de entender o leer».
read moreMay 29, 2009
A vueltas con las plantillas
Ando haciendo pruebas últimamente con C++ y hay algo que ahora no soy capaz de hacer, que es que elija entre un método u otro dependiendo de si lo que se le pasa por parámetro es una función o un functor.
Concretamente tengo algo como esto:
La idea es que este código permite hacer algo como lo siguiente:
Sí, el código se parece mucho a Axum de Microsoft, que la idea es crear algo parecido para C++.
read moreApril 13, 2009
Muchas cosas
Ya hace tiempo que no escribo nada, sobre todo desde que uso Twitter. Pero aún así hay cosas que no va bien ponerlas en dicho servicio.
La primera de todas son mis opiniones sobre la economía. Es curioso como los estados están gastando grandes cantidades de dinero en bancos, industria automovilística y otros para mantener dichos sectores cuando la gente no consume. ¿No sería más lógico darle dicho dinero a los usuarios para que puedan realizar compras?
read moreJuly 25, 2008
Plantillas en C++
Recuerdo cuando empecé a aprender C++ que la cosa que menos entendía era el uso de plantillas. Debo reconocer que me ha costado mucho comprender como funciona porque era algo completamente diferente a lo que hasta entonces había visto.
Por otro lado, hemos visto en los últimos tiempos como gran cantidad de arquitecturas han copiado el modelo para implementarlo a su modo. Aquí es donde vemos los genéricos de Java y de .
read more