Range against the machine

Uma característica do C++ moderno é o range-based for. Antes de falar de qualquer teoria e para que fique mais claro, segue um exemplo: View the code on Gist. O range-based for se baseia em intervalos e iteradores. O que é um iterador em C++ ? Grosseiramente é um ponteiro que suporte aritmética de ponteiros…

Tamanho e alinhamento

Uma coisa que eu gosto bastante no C++ e que poucas vezes é visto com o devido cuidado é a forma como a memória é alocada. Eu ouço constantemente o mantra: Hoje temos muita memória disponível, um pouco a mais não faz diferença. Opa, perai. É verdade que é comum encontrarmos máquinas com 16, 32,…

Do macro ao template

Uma coisa que gera discussões acirradas dentre as pessoas nestes tempos mais modernos do C++ é o uso de macros. Dentre os argumentos contra as macros estão os de que o uso de macros leva a criação de uma nova linguagem (o que é bem verdade quando usado sem moderação). Quando se está desenvolvendo em…

Construtor e Operador =

Constructors e operador = É bem comum que as pessoas não entendam e nem saibam a razão de existir o copy/move constructor e assignment operator. Por padrão, classes no C++ são do tipo value_type. Isso faz com que ao atribuir algo a uma variável de classe, uma cópia de ponteiros não possa ser feita pela…

Olá, mundo!

View the code on Gist. Não esqueçam de adicionar o site no seu leitor de rss http://simplycpp.com/feed/ Update: Me perguntaram a razão de ter feito esse floreamento todo no código, pois não é eficiente. Então, eu achei interessante colocar aqui como seria isso em um código real. Se eu estivesse escrevendo o código em C…