Original Article: STLFilt: An STL Error Message Decryptor for C++
Author: bdsoft

STLFilt: Um Decryptor de mensagem de erro STL para C++

Open Source Freeware de Leor Zolman, Supporting:
Comeau C++
gcc 2.95.x/3.x/4.x (Dev-C++ compatible)
MSVC++ 6/7/8/9 (incl. Dinkum Libraries)
Metrowerks CodeWarrior Pro 7/8
Borland C++ / C++Builder
Intel C++ 7/8
EDG Front End (Generic)
Digital Mars C++

Observação: o desenvolvimento ativo no STLFilt terminou. O autor espera sinceramente que o Comitê de Padrões C ++ adote "Conceitos" mais cedo e não mais tarde, tornando desnecessárias as ferramentas como STLFilt...




STLFilt simplifica e / ou reformata mensagens de aviso e erro de C ++ de longo tempo, com foco nos diagnósticos relacionados ao STL (e para o MSVC 6, elimina completamente os avisos C4786 e seus detritos). O resultado torna muitos dos até mesmo diagnósticos críticos compreensíveis.

O ingrediente ativo em cada distribuição é um script Perl, então você precisará de um intérprete Perl instalado; ActivePerl funciona melhor e é grátis.

Os downloads seguem, organizados pela plataforma:

  • Microsoft Visual C++ 6/7/8/9: stlfilt.zip (484K, atualizada 10/22/2007). Inclui o compilador CL do "Proxy", o utilitário de controle residente STLTask com plataforma multi-plataforma (screen shot), e suporte para o longo envolvimento de nomes de tipos (veja a seção gcc abaixo). Demo é executado: VC6 VC7+ longos nomes de tipos . Suporta tanto o IDE e ambientes de linha de comando, em conjunto com qualquer uma ou todas as seguintes bibliotecas C ++:
    • Native MSVC 6
    • Native MSVC 7.x, 8.x, 9.x (IDE-decodificação baseada dentro VS2005/2008 now WORKS. See README-VC.txt)
    • STLport 4.x
    • Dinkum 3.08
    • Dinkum Unabridged Library
  • gcc 2.9x/3.x/4.x (testado em MinGW até 4.1.1, e abaixo TDM gcc 4.2.2) Para Windows: gstlfilt.zip (409K, atualizado 6/16/2008). Para Unix, Linux, etc.: gstlfilt.tar (180K, atualizado 2/3/2008). Demo Run. Suporta envolvimento inteligente de nomes de tipos muito longos (como aqueles que surgem em aplicativos de metaprogramação de modelos) com um conjunto de regras personalizáveis sugeridas por David Abrahams (Demo). A distribuição gcc Decryptor baseada no Windows agora inclui um compilador Proxy c ++ (fornece Dev-C++ Compatibilidade, e também compensa a falta de redirecionamento do prompt de comando Win9X) e multi-platform-aware utilitário STLTask. [Para um bom, auto-instalação distribuição MinGW gxc 3.x com base no Windows, clique em aqui e baixe o auto instalador (chamado MinGW-x.x.x-x.exe na seção Current / MinGW). Você também pode querer ler essas notas se você usar recipientes estendidos (com base em hash e slist)].
  • Comeau C++: Para Windows: comofilt.zip (35K, atualizado 11/28/2003). Para Unix, Linux, etc.: comofilt.tar (110K, atualizado 11/28/2003). Demo Run. O Decryptor Comeau agora oferece suporte tanto à libcomo e Dinkum livrarias. Muito Obrigado para Greg Comeau para a construção de suporte de linha de comando intrínseco para STLFilt em seu compilador, e para o seu apoio de todos os aspectos do Comeau C ++ até agora fora de proporção com o preço de venda microscópico do pacote!
  • EDG C++ "Demo" Front End: Para Windows: edgfilt.zip (32K, atualizado 11/25/2003). Para Unix, Linux, etc.: edgfilt.tar (110K, atualizado 11/25/2003). Se você estiver usando o Comeau ou o Intel C ++, use uma dessas distribuições específicas da plataforma acima. Esta versão para o compilador de demonstração EDG só foi testada com a biblioteca Dinkum.

Abaixo está a informação da versão específica do componente. Ao clicar em um número de versão, é exibido o log de alterações cronológicas reversas para o componente associado:


Componente

Versão
Número

Último
Atualizad

STLFilt.pl
Perl script for Visual C++

2.74

10/16/2007

CL.cpp
Proxy CL for Visual C++

2.50

10/16/2007

STLTask
GUI-controlador de decodificação baseado em MSVC, gcc e Intel C ++ (Windows) [screen shot]

3.07

9/8/2004

comofilt.pl
Perl script for Comeau C++

1.34

11/28/2003

gSTLFilt.pl
Perl script for gcc

3.10

1/28/2008

C++.cpp
Proxy c++ for gcc (agora suporta o Dev-C++ IDE!)

3.50

06/16/2008

cwSTLFilt.pl
Perl script for Metrowerks CodeWarrior

1.10

11/24/2003

bSTLFilt.pl
Perl script for Borland C++ 5.5.1 e C++Builder Command-Line Tools

2.01

11/22/2003

edgfilt.pl
Perl script for EDG C++ Front End

1.02

11/25/2003

intelfilt.pl
Perl script for Intel C++

2.02

11/28/2003

dmSTLFilt.pl
Perl script for Digital Mars C++ Command-Line Tools

0.91

3/20/2004




STLFilt in Print

Leor Zolman's C/C++ Jornal de usuários artigo, Um Decryptor de mensagem de erro STL para Visual C++, aparece na edição de julho de 2001. Está disponível para visualização online.

Em seu livro C++ Template Metaprogramming, David Abrahams e Aleksey Gurtovoy descrevem o uso de STLFilt para ajudar na formatação e reordenamento de erros de metaprogramação. Veja a seção 8.2 ("Usando Ferramentas para Análise de Diagnóstico"), páginas 156-158.

Bruce Eckel e Chuck Allison menciona STLFilt na página 320 de pensando em C ++ Volume Dois: Programação Prática

Nicolai Josuttis e Daveed Vandevoorde citam STLFilt na seção 6.6.1 de seu livro C++ Templates (2ª impressão e para cima).

Scott Meyers Menções STLFilt no Item # 49 de Effective STL. Nota: a página oficial de download para Effective STL's arquivo de código fonte é aqui.


Dando e recebendo ajuda

STLFilt é fornecido como Freeware de código aberto no interesse de promover a aprendizagem e o uso do C ++. Se você achar esse software útil e gostaria de retornar o favor além do monetário, por favor, note: o autor do STLFilt, Leor Zolman, oferece treinamento manual no C / C ++, Perl, Unix / Linux Fundamentals e Korn Shell scripting. Por favor, espalhe a palavra sobre BD Software ofertas de cursos para o pessoal do seu departamento de treinamento em TI.

Um grande "Obrigado!" para Bjarne Stroustrup, Comeau Computing, Dinkumware e Metrowerks Por ajudar a espalhar a palavra através de seus sites.

STLFilt é Freeware: open source, totalmente gratuito, sem strings anexados ... se você achar o software útil, no entanto, informe a alguém sobre o treinamento em C ++ no BD Software.