- Templates and Inheritance
-
The introduction of templates to C++ brought a new paradigm to C++ coding — Generic Programming. This is now a major part of the toolkit of the C++ programmer, the basis of much of the standard library, and something which many of us younger C++ hackers never experienced C++ without. Generic Programming is often discussed in contrast with Object Orientated Programming’s concept of inheritance. However a truly multi-paradigm approach prompts us to examine how the two interact.
- Date & Time Formats on the Web
-
There are several different formats used in different places in the technologies of the World Wide Web to represent dates, times and date/time combinations. This document presents a survey of the most significant, details which formats are mandated by the key technologies of the web, and offers advice for deciding what formats you should use in your own web applications.
- Entry-Level Unicode for XML
-
A “just enough education to perform” guide to Unicode and ISO 10646
for authors of XML parsers and other software that processes XML.
- WNDPROC Thunks Using the thiscall Calling Convention
-
I ended my article about WNDPROC thunk objects by
promising to write about how to write thunks that call into member functions
that use the thiscall calling
convention. I also include a full (if rather pointless) example of code
that uses the thunk.
- Calling Convetions in Microsoft Visual C++
-
All you ever wanted to know about the calling conventions used by Visual C++.
- The RAII Programming Idiom
-
I’m often surprised, and occasionally horrified, that Resource Acquisition Is
Initialisation isn’t better known than it is amongst programmers who use
languages to which it is applicable. It is a simple, eloquent and efficient way
to deal with many situations where there is a risk of “leaking” memory or
handles, failing to release file locks, etc.
- WNDPROC Thunks
-
If you ever program classes for controlling Windows™ windows you
will have met with the task of associating windows messages with the
correct instance of the class. There are a few alternative ways of doing
so. This document outlines one method using self-modifying code which is
fast, efficient, reliable, unlikely to interfer with other code
(including code from other users of the same window). Most importantly,
in my opinion, it’s a technique that largely stays out of your way once
it is in place.