|
Books
Imperfect C++,
by Matthew Wilson,
was published by Addison-Wesley in October 2004.
- Reviews
- Errata
Check it out at Amazon, where it's currently averaging stars:
|
Extended STL, volume 1: Collections and Iterators,
by Matthew Wilson,
was published by Addison-Wesley, in June 2007.
See http://extendedstl.com/ for details.
|
Breaking up the Monolith
is in early preparation, and will be published by Addison-Wesley, in 2008.
See http://breakingupthemonolith.com/ for details.
|
Extended STL, volume 2
is in early preparation, and will be published by Addison-Wesley, in 2008/9.
|
|
Selected chapters are available online:
|
Selected chapters are available online:
Preface
Prologue
Chapter 23: The Fibonacci Sequence
Chapter 34: An Enhanced ostream_iterator
Chapter 42: Filtered Iteration
|
|
|
Columns
From 2003-5, Matthew Wilson wrote for
C/C++ User's Journal/Dr Dobb's Journal
in the
the online Expert's Forum
column
Flexible C++.
|
"Finding Child Windows with Simulated Local Functions",
December 2005
|
|
"Beware Mixed Collection/Enumerator Interfaces",
November 2005
|
|
"Imperfect enums, part 2: Forward Declarations",
May 2005
|
|
"Imperfect enums, part 1: Declarations, Definitions, and Namespace Leakage",
April 2005
|
|
"Beware Logical Constness",
February 2005
|
|
"Succinct Options Validation with Expression Templates",
December 2004
|
|
"Union Casts Considered Harmful, but Necessary",
September 2004
|
|
"Handling Parameter Sets in Member Initialiser Lists: With A Little Help From MUMI!",
June 2004
|
|
"Friendly Templates: Redux",
June 2004
|
|
"Flexible Implementations Without Using Directives",
April 2004
|
|
"Efficient Integer To String Conversions, part 4",
January 2004
|
|
"Friendly Templates",
December 2003
|
|
"Efficient Integer To String Conversions, part 3",
November 2003
|
|
"Efficient Integer To String Conversions, part 2",
September 2003
|
From 2003-6, Matthew Wilson wrote for
C/C++ User's Journal in the
(in-print) column Positive Integration.
|
"A View to a String, part 1: Design and Definition",
C/C++ User's Journal,
Volume 24 Number 1, January 2006
|
|
"Argument-dependent Return-type Variance",
C/C++ User's Journal,
Volume 23 Number 11, November 2005
|
|
"Footprints in the butter, part 2",
C/C++ User's Journal,
Volume 23 Number 9, September 2005
|
|
"Footprints in the butter, part 1",
C/C++ User's Journal,
Volume 23 Number 7, July 2005
|
|
"Open-RJ/D, 100-Percent D",
C/C++ User's Journal,
Volume 23 Number 5, May 2005
|
|
"Open-RJ Memory Databases, and C++.NET",
C/C++ User's Journal,
Volume 23 Number 3, March 2005
|
|
"Open-RJ and Python",
C/C++ User's Journal,
Volume 23 Number 1, January 2005
|
|
"Open-RJ and Ch",
C/C++ User's Journal,
Volume 22 Number 11, November 2004
|
|
"recls refactored",
C/C++ User's Journal,
Volume 22 Number 9, September 2004
|
|
"Ruby: The Next Facet",
C/C++ User's Journal,
Volume 22 Number 7, July 2004
|
|
"Mapping recls to COM Collections",
C/C++ User's Journal,
Volume 22 Number 5, May 2004
|
|
"Mapping D and Java",
C/C++ User's Journal,
Volume 22 Number 3, March 2004
|
|
"Introducing recls mappings: C++, C# and STL",
C/C++ User's Journal,
Volume 22 Number 1, January 2004
|
|
"Introducing recls",
C/C++ User's Journal,
Volume 21 Number 11, November 2003
|
Bjorn Karlsson and Matthew Wilson write
an occasional column for The C++ Source:
Smart Pointers.
|
"Contract Programming 101",
The C++ Source,
December 31st, 2005
|
|
"Stream Thy Strings",
The C++ Source,
May 28th, 2005
|
|
"Reducing Pre-processor Namespace Pollution",
The C++ Source,
November 6th, 2004
|
|
"The Law of the Big Two",
The C++ Source,
October 1st, 2004
|
Articles
Our staff have contributed to the following articles at technical conferences and in industry publications:
|
Matthew Wilson,
"An Enhanced ostream_iterator",
Dr Dobb's Journal,
June 2007
|
|
Matthew Wilson and Garth Lancaster,
"A Custom Event Layer for the ACE Reactor Framework",
CVu,
April 2007
|
|
Matthew Wilson,
"The Nuclear Reactor and The Deep Space Probe, part 1",
The C++ Source,
Jan 1, 2006
|
|
Matthew Wilson,
"Adapting Interface-Incomplete Types At Compile Time",
C/C++ User's Journal,
Volume 23 Number 12, December 2005
|
|
Bjorn Karlsson and Matthew Wilson,
"Stream Thy Strings",
The C++ Source,
May 28, 2005
|
|
Matthew Wilson,
"What's Your Address?",
The C++ Source,
April 8, 2005
|
|
Matthew Wilson,
"C++ & operator []=",
Dr Dobb's Journal,
#371, April 2004
|
|
John Torjo and Matthew Wilson,
"Ranges, part 2: Iterable Range Adaptors, Algorithms and Composition",
C/C++ User's Journal,
Volume 22 Number 12, December 2004
|
|
Matthew Wilson,
"Wild-card Searches of UNIX Directories with Random Access Iterators",
The C++ Source,
September 12, 2004
|
|
Matthew Wilson and John Torjo,
"Ranges, part 1: Concepts and Implementation",
C/C++ User's Journal,
Volume 22 Number 10, October 2004
|
|
Matthew Wilson,
"Reading UNIX Directories via STL-compliant Sequences",
The C++ Source,
June 21, 2004
|
|
Matthew Wilson,
"Identity and Equality in .NET",
Dr Dobb's Journal,
#361, June 2004
|
|
Matthew Wilson,
"Fast, Non-intrusive, String Concatenation",
C/C++ User's Journal,
Volume 22 Number 6, June 2004
|
|
Matthew Wilson,
"C/C++ Compiler Optimization",
Dr Dobb's Journal,
#360, May 2004
- Errata
|
|
Walter Bright and Matthew Wilson,
"Collection Enumeration: Loops, Iterators and Nested Functions",
Dr Dobb's Journal,
#358, March 2004
|
|
Matthew Wilson,
"Adapting Callback Enumeration APIs to the Input Iterator Concept",
C/C++ User's Journal,
Volume 22 Number 2, February 2004
|
|
Matthew Wilson,
"Handling variation in Win32 operating environments",
Windows Developer Network,
Volume 2 Number 12, December 2003
|
|
Matthew Wilson,
"Efficient Variable Automatic Buffers",
C/C++ User's Journal,
Volume 21 Number 12, December 2003
|
|
Matthew Wilson,
"Open Source Software: What, How and Why",
BYTE,
week of 24th November 2003
|
|
Matthew Wilson,
"Data exchange between COM enumerators and Windows controls",
Windows Developer Network,
Volume 2 Number 11, November 2003
- Errata
|
|
Matthew Wilson,
"Identity and Equality: Syntax and Semantics",
C/C++ User's Journal,
Volume 21, Number 10, October 2003
|
|
Matthew Wilson,
"Comparing C++ Compilers",
Dr Dobb's Journal,
#353, October 2003
- Errata
|
|
Matthew Wilson,
"C# Performance: Comparison with C, C++, D and Java, Part 2",
Windows Developer Network,
special online supplement, fall 2003
|
|
Matthew Wilson,
"C# Performance: Comparison with C, C++, D and Java, Part 1",
Windows Developer Network,
special online supplement, fall 2003
|
|
Matthew Wilson,
"Win32 Security in Managed C++",
Windows Developer Network,
Volume 2 Number 9, September 2003
|
|
Matthew Wilson,
"Rebooting from the Shell",
Windows Developer Network,
Volume 2 Number 8, August 2003
|
|
Matthew Wilson,
"Generalised String Manipulation: Access Shims and Type-tunnelling",
C/C++ User's Journal,
Volume 21 Number 8, August 2003
|
|
Matthew Wilson,
"Open-source Flexibility via Namespace Aliasing",
C/C++ User's Journal,
Volume 21 Number 7, July 2003
|
|
Matthew Wilson,
"Win32 Performance Measurement Options",
Windows Developer Network,
Volume 2 Number 5, May 2003
|
|
Matthew Wilson,
"XML Parser Usability and Performance",
Windows Developer Magazine,
Volume 14 Number 4, April 2003
|
|
Matthew Wilson,
"True Typedefs",
C/C++ User's Journal,
Volume 21 Number 3, March 2003
|
|
Matthew Wilson,
"Adapting Windows Enumeration Models to STL Iterator Concepts",
Windows Developer Magazine,
Volume 14 Number 3, March 2003
|
|
Matthew Wilson,
"Avoiding the Visual C++ Runtime Library",
Windows Developer Magazine,
Volume 14 Number 2, February 2003
|
|
Matthew Wilson,
"Embedded Dialog Management",
Windows Developer Magazine,
Volume 13 Number 12, December 2002
- Errata
|
|
M. D. Wilson,
"Photonic packet-switching networks",
PhD Thesis,
MMU, January 1996
|
|
J. M. Senior, M. D. Wilson, R. A. Cryan, I. Hawker,
"Traffic study of ATM over passive optical networks",
SPIE Proc., Vol. 2614 All-optical communication systems: Architecture, control and network issues, Philadelphia, October 1995
|
|
M. D. Wilson, J. M. Senior, R. A. Cryan, I. Hawker,
"Topology effects in ATM core-network performance",
Communication Networks Symposium. The Manchester Metropolitan University, pp. 141-44, 10-11 July 1995
|
|
M. D. Wilson, A. J. Phillips, J. M. Senior, R. A. Cryan, I. Hawker,
"Bursty traffic modelling for ATM networks",
Proc. SPIE, 2450, 'Broadband networks: Strategies and Technologies', Amstersam, Holland, pp. 90-6, March 1995
|
|
J. M. Senior, M. D. Wilson, A. J. Phillips, R. A. Cryan, I. Hawker,
"A programmable bursty traffic algorithm for use in packet-level discrete time packet switch simulation studies",
1994 IEEE Singapore International Conference on Communication Systems, pp. 1001-3, 1994
|
|
M. D. Wilson, A. J. Phillips, J. M. Senior, R. A. Cryan, I. Hawker,
"An algorithm for generating bursty traffic",
Communication Networks Symposium. The Manchester Metropolitan University, pp. 110-113, 11-12 July 1994
|
Tips / Small Articles
|
Matthew Wilson,
"Enumerating Registry Sub-keys in D",
Dr Dobb's Journal,
#362, Volume 29 Number 7, July 2004
|
|
Matthew Wilson,
"Accessing C-string Representations of Strings in Managed C++",
Dr Dobb's Journal,
#359, Volume 29 Number 4, April 2004
|
|
Matthew Wilson,
"An Even Better RegDeleteKey",
Dr Dobb's Journal,
#358, Volume 29 Number 3, March 2004
|
|
Gregory Peet and Matthew Wilson,
"Cleaning up Component Categories",
Dr Dobb's Journal,
#358, Volume 29 Number 3, March 2004
|
|
Matthew Wilson,
"Safer Node Browsing with Microsoft's XML DOM",
Windows Developer Network,
Volume 2 Number 11, November 2003
|
|
Matthew Wilson,
"Beware Null ListViewSubItems in .NET",
Windows Developer Network,
Volume 2 Number 11, November 2003
|
|
Matthew Wilson,
"Inserter Function Objects for Windows Controls",
Windows Developer Network,
Volume 2 Number 11, November 2003
|
|
Matthew Wilson,
"Accessing IDL ref Types as C++ References",
Windows Developer Network,
Volume 2 Number 8, August 2003
|
|
Matthew Wilson,
"Accessing Old-style List-view Headers",
Windows Developer Network,
Volume 2 Number 8, August 2003
|
|
Matthew Wilson,
"MIDL Semantic Analysis Bug",
Windows Developer Network,
Volume 2 Number 8, August 2003
|
|
Matthew Wilson,
"Beware of GetFullPathNameW",
Windows Developer Network,
Volume 2 Number 7, July 2003
|
|
Matthew Wilson,
"Visual SourceSafe and .NET interroperability",
Windows Developer Network,
Volume 2 Number 7, July 2003
|
|
Matthew Wilson,
"Locking Window Updates"
Windows Developer Network,
Volume 2 Number 6, June 2003
|
|
Matthew Wilson,
"A printf for Message Boxes"
Windows Developer Network,
Volume 2 Number 5, May 2003
|
|
Matthew Wilson,
"A Shareable Approach to Debugging Additional DLLs"
Windows Developer Network,
Volume 2 Number 5, May 2003
|
|
Matthew Wilson,
"Duplicating Registry Keys with RegKeyDup",
Windows Developer Magazine,
Volume 14 Number 4, April 2003
|
|
Matthew Wilson,
"Translating Paths On Mapped Network Drives",
Windows Developer Magazine,
Volume 14 Number 3, March 2003
|
|
Matthew Wilson,
"Spying on Function Returns and Local Variables in Debugging",
Windows Developer Magazine,
Volume 14 Number 2, February 2003
|
|
Matthew Wilson,
"Taming CoInitializeSecurity",
Windows Developer Magazine,
Volume 14 Number 1, January 2003
|
|
Matthew Wilson,
"A Function For The Flexible Centering Of Windows",
Windows Developer Magazine,
Volume 13 Number 12, December 2002
|
|
Matthew Wilson,
"Custom Keyboard Navigation with Mnemonics, Part 2",
Windows Developer Magazine,
Volume 13 Number 12, December 2002
|
|
Matthew Wilson,
"Efficient Integer To String Conversions",
C/C++ User's Journal,
Volume 20 Number 12, December 2002
|
|
Matthew Wilson,
"Custom Keyboard Navigation with Mnemonics, Part 1",
Windows Developer Magazine,
Volume 13 Number 11, November 2002
|
|
Matthew Wilson,
"Custom Keyboard Navigation with Radio Buttons, Part 2",
Windows Developer Magazine,
Volume 13 Number 11, November 2002
|
|
Matthew Wilson,
"Querying Multiple IDispatch Method Identifiers",
Windows Developer Magazine,
Volume 13 Number 10, October 2002
|
|
Matthew Wilson,
"Counting NULL Termination in Path Length Computations",
Windows Developer Magazine,
Volume 13 Number 9, September 2002
|
|
Matthew Wilson,
"A Function For Sending Messages To Threads Synchronously",
Windows Developer Magazine,
Volume 13 Number 7, July 2002
|
|
Matthew Wilson,
"Custom Keyboard Navigation with Radio Buttons",
Windows Developer Magazine,
Volume 13 Number 5, May 2002
|
|
Matthew Wilson,
"Options for Indicating Progress of Variable-Length Operations",
Windows Developer Magazine,
Volume 13 Number 2, February 2002
|
|
Matthew Wilson,
"Generating Out-Of-Memory Exceptions",
Windows Developer's Journal,
Volume 12 Number 5, May 2001
|
White-papers
Some company internal whitepapers that have not found their way into other forums.
Errata
In 2003 I've been accused of being a hater of, or a propagandist for, one software vendor
or another, sometimes both accusations regarding the same vendor in the same week! Neither of these are true. I am an
independent software development consultant, who's taken time out this year to pursue some writing activities. By nature
I'm a pragmatist, and thus my writing reports in respect of that. I use something if I find it useful, not because it
is, or is not, produced by a particular company or organisation.
I'm not sure whether it's the fashion to admit one's mistakes, but I believe that honesty is
the best policy. Therefore, as well as providing a record of (and online access to, in most cases) my writing activities this
page provides a place in which to set the record straight wherever I've made a mistake. If you see
Errata next to an article, I've either made a mistake, or something requires clarification,
or both, so prick my conscience and click the link.
Thanks for listening, Matthew Wilson.
Technical Editing
We provide technical editing services, on a range of topics including C++,
COM, Windows technologies, Java & J2EE, for several leading book publishers and industry magazines.
including the following:
|
Steve Dewhurst, C++ Common Knowledge, Addison-Wesley, 2005
|
|
Steve Dewhurst, C++ Gotchas, Addison-Wesley, 2003
|
|
Bjorn Karlsson, Beyond the C++ Standard Library - An Introduction to Boost, Addison-Wesley, 2005
|
|
Scott Meyers, Effective C++, 3rd Edition, Addison-Wesley, 2005
|
|
Herb Sutter and Andrei Alexandrescu, C++ Coding Standards, Addison-Wesley, 2004
|
Weblog
Matthew Wilson has a weblog (blog) on artima.com.
You can subscribe to be notified of new posts by via Artima's RSS.
|
"What is Documentation? Can we expect s/w engineers 2 be good at all facets?",
The C++ Source,
6th June 2005
|
|
"Contract Enforcement for humanity ... ?",
The C++ Source,
30th April 2005
|
|
"Definite proDuctivity aDvantages",
The C++ Source,
21st April 2005
|
|
"What's the deal with customer service?",
The C++ Source,
20th April 2005
|
|
"To new, or not to new, which is the best one?",
The C++ Source,
19th April 2005
|
|
"Jumping from the top of The Parachutes",
The C++ Source,
18th April 2005
|
|
"Software Engineers are like Cyclists",
The C++ Source,
16th April 2005
|
|
"The Elephant in the Living Room",
The C++ Source,
10th April 2005
|
|
"Introductions: Rants, Ravings and Ruminations",
The C++ Source,
10th April 2005
|
|