Author Archives: Alfredo Kojima

Visual Studio: Updating Intellisense

Se sua pressão aumenta toda vez que vê essa mensage no Visual Studio, é possível desabilitar totalmente essa funcionalidade: Vá em: C:\Program Files\Microsoft Visual Studio 8\VC\vcpackages ou equivalente na sua máquina e apague (ou renomeie para algo inócuo) o arquivo … Continue reading

Posted in Windows | Tagged , , , , | Leave a comment

C++: hash_set, hash_map

Apesar dos templates para hash_set e hash_map não serem padronizados, ambos são relativamente comuns, estando disponíveis tanto na implementação GNU (ie, no GCC) quanto no Visual C++ no Windows. Existem algumas diferenças, como o namespace um pouco mais escondido no … Continue reading

Posted in CPP | Tagged , , , , , , | Leave a comment

C++: Ponteiro para métodos/funções sobrecarregadas

Para obter ponteiros a métodos ou funções sobrecarregadas, como exemplo: class Foo { public: void bla(int a); int bla() const; }; Se tentarmos usar o nome da função diretamente, o compilador não saberá a qual dos métodos você se refere. … Continue reading

Posted in CPP | Tagged , , , | 3 Comments

C, C++: Funções com número variável de parâmetros (stdargs)

Palavras-chave: C, C++, varargs, argumentos variáveis Para escrever funções que aceitam quantidade variável de parâmetros, usa-se o mecanismo de stdargs do C. Para isso coloca-se “…” como último parâmetro na declaração da função e depois usa-se as funções de stdarg.h … Continue reading

Posted in C, CPP | 6 Comments

C++: Pré-compilação de headers no gcc

Palavras-chave: C++, C, C#, precompiled header, prefix header, g++, lento Se seu programa em C++ demora séculos para compilar, considere usar um recurso do GCC 4 que acelera compilações de maneira bastante simples. Um dos motivo porque programas C++ demoram … Continue reading

Posted in CPP | 1 Comment

C: Ler linhas de um arquivo texto de maneira portável

Palavras-chave: C, arquivo texto, linhas, leitura, getline Como dito num post anterior, a glibc possui uma função para ler linhas de comprimento arbitrário de um arquivo texto. Mas como esta função é especifica a glibc, alguns leitores pediram uma versão … Continue reading

Posted in C | 13 Comments

Python: split() de palavras com "strings protegidas"

Palavras-chave: Python, split, tokenizacão, análise léxica, parser, strings, quotes, aspas O módulo re possui a conveniente função split(), que faz o mesmo que o split() dos strings, mas aceita expressões regulares como separador. Isto pode ser aproveitado para fazer um … Continue reading

Posted in Python | 2 Comments

Python: UTF8 e SQLObject

Palavras-chave: Unicode, utf8, SQLObject, TurboGears, erro UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc3 in position 50: ordinal not in range(128) Este erro pode ocorrer quando se tenta executar queries que envolvem caracteres Unicode (na query em si ou no resultado) … Continue reading

Posted in Python | Leave a comment

C: Linkagem estática não encontra funções

Palavras-chave: C, linkagem estática, undefined reference, referência indefinida Ao linkar programas que usam bibliotecas estáticas que por usa vez usam outras bibliotecas estáticas, pode ocorrer de o linker reclamar da falta de símbolos de uma das bibliotecas, apesar de eles … Continue reading

Posted in C | 3 Comments

C: varargs com macros no gcc

Palavras-chave: C, gcc, cpp, macros, …, varargs, número de parâmetros variável, variadic macros Para escrever macros de função com número variável de argumentos: #define DPRINT(fmt, …) printf(“DEBUG: “fmt”\\n”, ## __VA_ARGS__) __VA_ARGS__ será substituído pelos parâmetros dados. E o ## entre … Continue reading

Posted in C | 11 Comments