Software Design

Design de software em C, C++, Java, etc…

Arquivo da categoria: C++

Linux: Portabilidade de binários / Floating Point Exception (SIGFPE)

Problemas de ‘linkagem‘ utilizando binários compilados por diferentes versões do gcc podem complicar bastante a nossa vida. Um problema que aconteceu recentemente comigo foi quando compilei um binário que utiliza … Continuar lendo

janeiro 7, 2014 · Deixe um comentário

C++: Utilizando Hayai para benchmark de código

O Hayai é um framework para benchmark baseado no gtest do Google. A idéia é criar testes de performance de forma simples e rápida. Os tempos de execução são medidos … Continuar lendo

dezembro 11, 2013

C++: Marcando funções como obsoletas ( deprecated )

Não existe um recurso no padrão que defina uma forma para tornar uma função obsoleta, por isso cada compilador tem uma sintaxe diferente. No caso do g++ a sintaxe é … Continuar lendo

novembro 20, 2013 · Deixe um comentário

Dica: Utilizando varargs em diretivas #define

Recentemente precisei isolar um código legado para depuração e durante os testes precisava ver o que estava logado, porém o sistema em questão utiliza uma biblioteca de logs proprietária que … Continuar lendo

outubro 10, 2013 · Deixe um comentário

Dica Rápida sed + regex: Adicionando std:: antes de todos “exception”

Precisei recompilar um software legado escrito em C++ e para minha surpresa o código não compilava porque em vários arquivos a classe exception estava sendo referenciada sem o prefixo std:: … Continuar lendo

janeiro 28, 2013 · Deixe um comentário

C++: “Linkagem” estática da libstdc++

Quem programa em C++ para Linux e precisa gerar binários que rodem em diferentes distribuições sabe como isso pode ser uma tarefa árdua. Isso ocorre porque o programa linkado com … Continuar lendo

dezembro 13, 2012 · Deixe um comentário

C++ Oracle Client – Erro de timezone ( ORA-01804 )

Recentemente precisei instalar um serviço que utiliza banco de dados Oracle e começamos a ter a mensagem de erro: Error: ORA-01804: failure to initialize timezone information. O serviço foi compilado … Continuar lendo

novembro 27, 2012 · Deixe um comentário

Wrapper LibXML2 para C++

Precisei utilizar a libxml2 em um projeto recentemente e como ainda não tinha utilizado essa biblioteca precisei estudar sua documentação. Ao ler a documentação achei ela bastante complicada de utilizar. … Continuar lendo

outubro 9, 2012 · Deixe um comentário

Boost Smart Pointers: scoped_ptr

O scoped_ptr é o mais simples dos smart pointers da boost. A idéia por trás deste smart pointer é garantir a exclusão do objeto assim que o scoped_ptr sair de … Continuar lendo

setembro 19, 2012 · Deixe um comentário

C++: Adicione um engine javascript à sua aplicação

Introdução: Muitas vezes é necessário permitir que a sua aplicação seja extensível. Geralmente para que isso aconteça os programadores optam por criar APIs de plugins para a aplicação para que … Continuar lendo

agosto 29, 2012 · Deixe um comentário