Languages
- 1461
- Templates for Efficient Dynamic Type Checking
- Presents a handy template that makes it easy to check casts without losing performance.
- 1462
- Traits
- A new and useful template technique that radically simplifies the interface to class templates instantiable on native C++ types.
- 1463
- Typed Buffers, Part 1
- This article treats memory buffers in C++, but with two twists: first, the buffers are generic, which means they can contain typed data. Second, the buffers are as efficient as their hosted type and the host operating system allows, in every aspect.
- 1464
- Typed Buffers, Part 2
- This article does not treat buffers directly, but rather two operations that are commonly performed with buffers: filling a buffer with a value and copying between buffers and various containers.
- 1465
- An Introduction to Variadic Templates in C++0x
- Introduces the syntax for declaring and using variadic templates, along with some simple examples of variadic function templates and variadic class templates. (April 24, 2009)
- 1466
- A Deeper Look at Metafunctions
- This article investigates the use of metafunctions in template metaprogramming, and introduces the Boost Metaprogramming Library. It is an excerpt from the book, C++ Template Metaprogramming by David Abrahams and Aleksey Gurtovoy. (August 23, 2004)
- 1467
- 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++.
- 1468
- 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."
- 1469
- Overloading and Overloading
- Operator overloading may be syntactic sugar, but there are a lot of things that don't taste very good without sugar.
- 1470
- 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.
- 1471
- Reference Initializations
- Explains how the rules for initializing references differ from the rules for initializing pointers.
- 1472
- Simulating Polymorphic Operators in C++
- Presents three different techniques for making operators polymorphic.
- 1473
- Rvalue References Explained
- Explains how rvalue references solve at least two problems: implementing move semantics, and perfect forwarding. (October 01, 2009)
- 1474
- 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)
- 1475
- 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)
- 1476
- 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)
- 1477
- 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)
- 1478
- 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)
