Lab C++

Codificação Eficiente

Não basta conhecer a sintaxe, é preciso conhecer a linguagem, saber a melhor forma de fazer.

Tags: c++

Design Pattern: Singleton

Design Patterns, ou Padrões de Projeto, são soluções gerais para problemas comuns de desenvolvimento de software, apesar de controversas são considerados um conjunto de melhores práticas. Um desses padrões é o Singleton, utilizado para garantir que somente haverá uma instância dessa classe no programa todo, sem impactar na facilidade de acesso a essa instância.

(mais…)

Templates em C++ – Parte 2: Classes Templates

No post anterior abordamos como fazer uma função template, neste post vamos verificar como implementar uma classe template.

(mais…)

Templates em C++ – Parte 1: Funções Template

Templates vieram para flexibilizar a tipagem forte da linguagem C++ sem a utilização de tipos neutros, como void, comum em C++. Neste post vamos aprender como implementar uma função com templates.

(mais…)

Números Complexos com C++

Até o STL quem quisesse trabalhar com números complexos em C ou C++ teria que desenvolver sua própria biblioteca. Mas agora temos várias funções para manipulação de números complexos.

(mais…)

Threads em C++ – Parte 5: Async

std::async é uma função que constrói um std::future baseado em uma função, sem a necessidade de um std::promise, simplificando a utilização de processos assíncronos.

(mais…)

Threads em C++ – Parte 4: Introdução às Promises

Promises fazem parte das novas formas de gerenciar produção e consumo de dados entre threads, basicamente sincronizando a execução de uma thread de geração ou recuperação de dados, com a thread que consome esses mesmos dados.

(mais…)

Macro ou Função com Template?

Desde o C é comum utilizar macros para funções genéricas que podem executar a mesma operação em diversos tipos. Macros como MAX, MIN, AVG (média), dentre outros. Com C++11 é possível implementar juntamente com templates e inferência de tipo com typeinfo funcionalidades bem mais complexas.

(mais…)

Funções Anônimas em C++

[] () { };

O trecho de código acima é válido para C++11, trata-se de uma função anônima, ou função lambda, e vamos entender melhor como funciona no post de hoje.

(mais…)

Inferência de Tipo em C++

A inferência de tipo foi adicionada na versão C++11 através da palavra reservada auto. Através da inferência de tipo é possível deixar que o tipo da variável seja determinada em tempo de compilação conforme a sua inicialização.

(mais…)

Descobrindo Tipos com typeinfo

Em C++ é possível avaliar o tipo em tempo de execução, o que pode ser muito útil quando estamos falando de abstração e derivação de classes. Com a função type_id e classe type_info é possível obter informações sobre um tipo, classe, variável ou objetos.

(mais…)