Most recent C++ Tips
Table of Contents
10/23/00
toupper for strings of arbitrary character types
10/20/00
a case for protected virtual functions
10/16/00
Uses and Abuses of Vector
10/13/00
Style Case Study #1: Index Tables
10/11/00
non-member functions improve encapsulation
10/04/00
stream output of "true" and "false" for bools
09/26/00
covariant return types
09/21/00
defining a non-ASCII based stream
09/13/00
virtual inheritance and non-default constructors
09/05/00
templates in an inheritance hierarchy
09/01/00
identifiers and linker efficiency
08/29/00
inserting '\0' into ostrstream
08/24/00
hate friends/love friends
08/21/00
musings on valarray for numerical work
08/18/00
a little initialization gem
08/16/00
debugging complexity and lines of code metrics
08/15/00
timing and profiling gotchas
08/08/00
inheritance and traits
07/14/00
creating simple output manipulators
07/11/00
slow standard c++ I/O
07/05/00
Encapsulation
06/26/00
template function partial specialization partial ordering
06/20/00
fscanf equivalent with streams (I & II)
06/16/00
distinguishing constructors with artificial types
06/12/00
standard library exception appendix
06/07/00
word counting example using STL
06/06/00
accessors or public members (2)
06/05/00
accessors or public members
06/01/00
initialising STL containers
05/30/00
STL performance of resize() and reserve()
05/23/00
compile-time inheritance checking
05/22/00
copying a file's contents into a string
05/19/00
Enforcing Rules For Derived Classes
05/15/00
a rationale for static_cast
05/11/00
multiple type qualification
05/09/00
portably checking file lengths
05/05/00
c++ interview question with "no loop" solution
04/28/00
example of traits usage
04/27/00
using auto_ptr in containers
04/26/00
thread safe singleton
04/20/00
std lib headers and portability
04/18/00
how to use "inherited" typedefs
04/17/00
enforcing checking for error return values
04/12/00
Safe-STL
04/10/00
what is auto_ptr_ref for?
04/04/00
nonequivalence of int and int-like types
03/30/00
c++ compiler conformance
03/28/00
books on the standard library
03/21/00
exception safety and self-assignment
03/20/00
how to sort a std::list of pointers
03/15/00
double or nothing (float vs double)
03/15/00
template copy constructor?
03/13/00
formatting numbers
03/05/00
contructor failures
03/02/00
when is inline reasonable (part ii)
02/28/00
compile-time structure decision
02/24/00
when is inline reasonable
02/22/00
designing stream for file and console output
02/15/00
templ specialized member functions
02/14/00
standard library member functions
02/11/00
keeping destruction responsibilities at home
02/09/00
linker efficiency
02/08/00
virtual functions in constructors
02/07/00
forward declarations and namespaces
02/02/00
return value optimization
02/01/00
Amok Code
11/11/99
STL book recommendations
11/09/99
elementary exception cleanup
11/05/99
ACID Programming
11/02/99
forward declaring friends
10/29/99
abstract data type versus abstract base class
10/27/99
default-initialization for built-in types
10/26/99
relationships between streams and fstreams
10/20/99
taking the address of a temporary
10/19/99
reprocessor comment replacement
10/15/99
FILE* and output streams
10/14/99
internationalization concerns with uppercasing strings
10/13/99
a stream for custom string types
10/08/99
STL bitset versus vector
10/07/99
restricting constant template arguments
10/06/99
Stroustrup on C++ performance
09/30/99
what is information hiding
09/22/99
Exception-Safe Class Design (part II)
09/20/99
ensuring identical typedefs in templates
09/17/99
std::containter deletion problem with "const T"
09/14/99
deleting through a const pointer
09/09/99
forward declaring i/o constructs
09/08/99
constant declarations in include files
08/30/99
implementation notes on references
08/24/99
exception-safe class design
08/23/99
practical concerns of signed versus unsigned characters
08/18/99
typedefs versus defines
08/17/99
signed versus unsigned characters
08/12/99
appropriate uses of static_cast
08/10/99
internationalized printf
08/09/99
wheres and whys of const_cast
08/03/99
"plain old data"
08/02/99
anonymous unions
07/30/99
nested/local functions/classes
07/29/99
recursively defined function pointers
07/27/99
name hiding fundamentals
07/09/99
new(nothrow) or new(std::nothrow)
07/08/99
function templates without
as return value or parameter
07/02/99
namespaces and overloading
07/01/99
copy constructors disallowed as member templates
06/30/99
local types disallowed as template arguments
06/29/99
exception safety in function calls
06/25/99
remove and erase for std::vector
06/22/99
pros/cons of stdio vs streams
06/09/99
examples of using static cast
06/08/99
the legality of null statements
06/04/99
pros/cons of custom constructors/assignment operators
05/28/99
smart pointer miscellanea
05/24/99
Equivalent Code?
05/21/99
accessing prot/private members via base class ptr/ref
05/18/99
enforcing some constraints at compile-time
05/17/99
nested classes versus namespaces
05/14/99
overloading based on function return type
05/10/99
internal linkage and arrays
05/07/99
performance, efficiency, and optimization
05/05/99
efficiency, performance, and design in C++
05/03/99
Migrating to Namespaces
04/30/99
type deduction in template arguments
04/26/99
the "overhead" of C++
04/21/99
requiring overridding of methods
04/20/99
exception safe assignment operator
04/19/99
separating interface and implementation using references
04/07/99
typedef vs typename in templates
04/06/99
extending STL part II
03/30/99
strings and exception safe exceptions
03/24/99
controlling access without outright friendship
03/22/99
pre- vs post-increment
03/19/99
common mistake in checking for entries in STL map
03/16/99
on the sizes of pointers
03/12/99
printf-style output with streams
03/11/99
conditionals and precedence
03/05/99
precedence and order of operations
02/29/99
design by contract in C++
02/26/99
a practical naming convention
02/19/99
sequence points and built-in operators
02/18/99
default values and overloading
02/17/99
aggregates, PODs, and constructors
02/10/99
thoughts on protected inheritance
02/08/99
using standard containers
02/04/99
private interface pattern
02/03/99
the acyclic visitor
02/01/99
C vs C++ perfromance-wise
01/27/99
conversions of pointer-to-pointers
01/26/99
complaints using STL vector
01/20/99
including via <header> versus <header.h>
01/18/99
pointer tinkering
01/15/99
hidden cost of using exception specifications
01/12/99
typedefs and const
01/11/99
stream shift operators for text
01/08/99
evaluating &*e
01/06/99
the growth of programs
01/05/99
switching streams
Allan Clarke <clarke@ses.com>
Last modified: Thu Nov 11 15:45:41 1999