An STL Error Message Decryptor for C++
Open Source Freeware by Leor Zolman,
gcc 2.95.x/3.x/4.x (Dev-C++
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++
STLFilt-ing is now
selectable on both the Comeau
online compiler pages!
Please Note: Active Development on STLFilt has ended.
sincerely hopes the C++ Standards Committee adopts "Concepts"
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.
Here is the rationale.
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:
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
type-names . Supports both the IDE and command line
environments, in conjunction with any or all of the following
- Native MSVC 6
- Native MSVC 7.x, 8.x, 9.x (IDE-based Decryption within VS2005/2008 now WORKS. See README-VC.txt)
- Dinkum 3.08
- gcc 2.9x/3.x/4.x
(tested under MinGW up to 4.1.1, and under TDM gcc 4.2.2)
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].
C++: For Windows:
comofilt.zip (35K, updated 11/28/2003).
For Unix, Linux, etc.:
comofilt.tar (110K, updated 11/28/2003).
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!
C++ 7/8: For Windows (now with Proxy ICL and STLTask utilities):
intelfilt.zip (389K, updated 9/08/2004).
For Unix, Linux, etc.:
intelfilt.tar (120K, updated 11/28/2003).
- 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.
CodeWarrior Pro 7/8: For Windows:
cwfilt.zip (29K, updated 11/24/2003).
For OS X, Unix, Linux, etc.:
cwfilt.tar (100K, updated 11/24/2003).
C++ 5.5.1 and C++Builder: Supports Command-Line Tools only:
bccfilt.zip (28K, updated 11/22/2003).
Demo Run. Tested
under both C++Builder 6 and C++Builder X (Trial versions).
Mars C++: Supports command-line tools (using STLport only,
so far): For Windows:
dmcfilt.zip (31K, updated 03/20/2004).
Demo Run. For
Unix/Linux, etc.: dmcfilt.tar
(100K, updated 03/20/2004).
Below is component-specific version information. Clicking on a
version number displays the reverse-chronological change log for
the associated component:
Perl script for Visual C++
Proxy CL for Visual C++
GUI-based Decryption controller for MSVC, gcc and Intel C++
(Windows) platforms [screen
Perl script for Comeau C++
Perl script for gcc
Proxy c++ for gcc (now supports the Dev-C++ IDE!)
Perl script for Metrowerks CodeWarrior
Perl script for Borland C++ 5.5.1 and C++Builder Command-Line
Perl script for EDG C++ Front End
Perl script for Intel C++
Perl script for Digital Mars C++ Command-Line Tools
For convenience, here is a cross-platform command line option
overview. Full documentation on script options is present in
the Perl source -- examine each script you use up to the comment
reading "End of user-configurable settings" to
see the full set of available customizable features specific to
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
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.
Allison mention STLFilt on page 320 of Thinking
in C++ Volume Two: Practical Programming (entire book downloadable
Nicolai Josuttis and Daveed Vandevoorde cite STLFilt in section
6.6.1 of their book C++
Templates (2nd printing and up).
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
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.
Site Map |
All text and images on this website are Copyright © 2001-2003 BD Software.
All rights reserved.