STLFilt: An STL Error Message Decryptor for C++

Open Source Freeware by 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++

Please Note: Active Development on STLFilt has ended. The author sincerely hopes the C++ Standards Committee adopts "Concepts" sooner rather than later, rendering tools such as STLFilt unnecessary...



STLFilt simplifies and/or reformats long-winded C++ error and warning messages, with a focus on STL-related diagnostics (and for MSVC 6, it fully eliminates C4786 warnings and their detritus). The result renders many of even the most cryptic diagnostics comprehensible.

The active ingredient in each distribution is a Perl script, so you'll need a Perl interpreter installed; ActivePerl works best, and it's free.

The downloads follow, organized by platform:

Microsoft Visual C++ 6/7/8/9: stlfilt.zip (484K, updated 10/22/2007 ). Includes the "Proxy" CL compiler, multi-platform-aware STLTask tray-resident control utility (screen shot), and support for long type-name wrapping (see the gcc section below). Demo runs: VC6 VC7+ long type-names . Supports both the IDE and command line environments, in conjunction with any or all of the following C++ libraries: Native MSVC 6 Native MSVC 7.x, 8.x, 9.x (IDE-based Decryption within VS2005/2008 now WORKS . See README-VC.txt) STLport 4.x Dinkum 3.08 Dinkum Unabridged Library

). Includes the "Proxy" CL compiler, multi-platform-aware STLTask tray-resident control utility (screen shot), and support for long type-name wrapping (see the gcc section below). Demo runs: VC6 VC7+ long type-names . Supports both the IDE command line environments, in conjunction with any or all of the following C++ libraries: gcc 2.9x/3.x/4.x (tested under MinGW up to 4.1.1 , and under TDM gcc 4.2.2 ) For Windows: gstlfilt.zip (409K, updated 6/16/2008 ). For Unix, Linux, etc.: gstlfilt.tar (180K, updated 2/3/2008 ). Demo Run. Supports intelligent wrapping of very long type-names (such as those that arise in template metaprogramming applications) with a set of customizable rules suggested by David Abrahams (Demo). The Windows-based gcc Decryptor distribution now includes a Proxy c++ compiler (provides Dev-C++ compatibility, and also makes up for the Win9X command prompt's lack of stderr redirection) and multi-platform-aware STLTask utility. [For a nice, self-installing Windows-based MinGW gcc 3.x distribution, click here and download the self-installer (named MinGW-x.x.x-x.exe in the Current/MinGW section). You may also want to read these notes if you use extended (hash-based and slist) containers].

Comeau C++: For Windows: comofilt.zip (35K, updated 11/28/2003 ). For Unix, Linux, etc.: comofilt.tar (110K, updated 11/28/2003 ). Demo Run. The Comeau Decryptor now supports both the libcomo and Dinkum libraries. Many thanks to Greg Comeau for building intrinsic command-line support for STLFilt into his compiler, and for his towering support of all aspects of Comeau C++ so far out of proportion to the package's microscopic selling price!

). For Unix, Linux, etc.: comofilt.tar (110K, updated ). Demo Run. The Comeau Decryptor now supports both the libcomo libraries. to Greg Comeau for building intrinsic command-line support for STLFilt into his compiler, and for his towering support of all aspects of Comeau C++ so far out of proportion to the package's microscopic selling price! EDG C++ "Demo" Front End: For Windows: edgfilt.zip (32K, updated 11/25/2003 ). For Unix, Linux, etc.: edgfilt.tar (110K, updated 11/25/2003 ). If you're using Comeau or Intel C++, use one of those platform-specific distributions above. This version for the EDG demo compiler has only been tested with the Dinkum library.

Below is component-specific version information. Clicking on a version number displays the reverse-chronological change log for the associated component:

Component Version

Number Last

Updated 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-based Decryption controller for MSVC, gcc and Intel C++ (Windows) platforms [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 (now supports the 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 and 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++ Users Journal article, An STL Error Message Decryptor for Visual C++, appears in the July, 2001 issue. It is available for viewing online.

In their book C++ Template Metaprogramming, David Abrahams and Aleksey Gurtovoy describe the use of STLFilt to help with formatting and re-ordering of metaprogramming errors. See section 8.2 ("Using Tools for Diagnostic Analysis"), pages 156-158.

Bruce Eckel and Chuck Allison mention STLFilt on page 320 of Thinking in C++ Volume Two: Practical Programming

Nicolai Josuttis and Daveed Vandevoorde cite STLFilt in section 6.6.1 of their book C++ Templates (2nd printing and up).

Scott Meyers mentions STLFilt in Item #49 of Effective STL. Note: The official download page for Effective STL's source code archive is here.

Giving and Getting Help

STLFilt is provided as open source Freeware in the interest of promoting the learning and use of C++. If you find this software useful, and would like a way to return the favor other than monetarily, then please note: STLFilt's author, Leor Zolman, offers hands-on, on-site training in C/C++, Perl, Unix/Linux Fundamentals and Korn Shell scripting. Please spread the word about BD Software's course offerings to the folks in your IT training department.

A big "Thank you!" to Bjarne Stroustrup, Comeau Computing, Dinkumware and Metrowerks for helping to spread the word via their web sites.

STLFilt is Freeware: open source, totally free, no strings attached...if you find the software useful, however, please tell someone about BD Software's on-site C++ training.

This page has been translated into the Russian language by Jim Jerginson from PortableComponentsForAll.

This page has been translated into the Serbo-Croatian language by Jovana Milutinovich from Geeks Education.

Translation into Portuguese by Artur Weber from homeyou