Ada-style Ranged Types in C++
Ranged types, common in Ada, allow the programmer to constrain a numerical type to a certain range. This article presents a library that brings these types to C++.
Associative Chains in C++
Phillip Bruce gets around some of the limitations of the pointer-to-member with a model of class associations that he calls "Associative Chains."
Overloading and Overloading
Operator overloading may be syntactic sugar, but there are a lot of things that don't taste very good without sugar.
Passing By Reference-to-const
Explains why the rules for initializing references make passing by reference-to-const an efficient and attractive alternative to passing by value.
Explains how the rules for initializing references differ from the rules for initializing pointers.
Simulating Polymorphic Operators in C++
Presents three different techniques for making operators polymorphic.
Rvalue References Explained
Explains how rvalue references solve at least two problems: implementing move semantics, and perfect forwarding. (October 01, 2009)
Rvalue References: C++0x Features in VC10, Part 2
Talks about rvalue references, which enable two different things: move semantics and perfect forwarding. They're initially very confusing because they distinguish lvalues from rvalues, which very few C++98/03 programmers are extensively familiar with. (February 03, 2009)
A Brief Introduction to Rvalue References
Rvalue references allow programmers to avoid logically unnecessary copying and to provide perfect forwarding functions. They are primarily meant to aid in the design of higher performance and more robust libraries. (March 10, 2008)
On the Tension Between Object-Oriented and Generic Programming in C++
Discusses how the use of generic programming in C++ can lead to conflicts with object-oriented design principles. Also demonstrates how a technique known as type erasure can often be used to resolve theseconflicts. An in-depth example is presented: any_iterator, a type-safe,heterogeneous C++ iterator. (October 15, 2007)
Built-in Type Safety?
C++ is a statically typed language but its type system is not bulletproof. This article reveals some all-too-common type glitches and how to fix them. (Thomas Guest) (June 25, 2005)
Never Call Virtual Functions During Construction or Destruction
Explains why you should never call virtual functions during construction and destruction of your objects. (Scott Meyers) (June 06, 2005)
C++: Under the Hood
Explains run-time C++ implementation details such as class layout techniques and the virtual function call mechanism. (March 01, 1994)
Last update:June 24, 2015 at 7:45:03 UTC