|
|
1. |
C++ Templates: Metaprograms
-
Nicolai M. Josuttis and David Vandevoorde examine metaprogramming, or "programming a program." Learn how to lay out code that the programming system executes to generate new code that implements the functionality you really want.
|
|
|
2. |
Partial Template Implementation
-
Describes partial template specialization and partial ordering of function templates.
|
|
|
3. |
Policy-Based Class Design in C++
-
Describes policies and policy classes, important class design techniques that enable the creation of flexible, highly reusable libraries.
|
|
|
4. |
Template Argument Matching
-
Takes a look at template argument matching and shows two limitation of Microsoft's compiler in this regard.
|
|
|
5. |
Templates and Inheritance Interacting in C++
-
Discover the interesting ways that templates and inheritance interact by taking a close look at named template arguments, the Empty Base Class Optimization (EBCO), the Curiously Recurring Template Pattern (CRTP), and parameterized virtuality.
|
|
|
6. |
Typedef Templates
-
Describes an extension to the C++ standard: typedef templates. Also shows workarounds for current C++ compilers.
|
|
|
7. |
"Export" Restrictions, Part 1
NEW!
-
Explains what export is, and how it's intended to be used. Also looks at the problems export is widely assumed to address, and why it does not in fact address them the way most people think.
|
|
|
8. |
"Export" Restrictions, Part 2
NEW!
-
Takes a look at the current state of export and offers some advice on using export effectively.
|
|
|
9. |
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.
|
|
|
10. |
An Improved Variant Type Based on Member Templates
NEW!
-
This article presents the class variant_t, which encapsulates a mechanism to hold values of arbitrary types.
|
|
|
11. |
Befriending Templates
NEW!
-
Looks at why befriending a template in another namespace is easier said (in the standard) than done (using real-world compilers that don't quite get the Standard right).
|
|
|
12. |
C++ Templates FAQ
-
Covers advanced template topics and compiler specific issues.
|
|
|
13. |
C++ Tutorial on Class Templates
-
Class templates provide a way to parameterize the types within a class. This tutorial introduces class templates in C++.
|
|
|
14. |
C++ Tutorial on Function Templates
-
This tutorial covers function templates in C++, which provide a way to parameterize the arguments or return types of a function. The same function can be used for different data types.
|
|
|
15. |
Gnarly New C++ Language Features
-
Description and examples about some newer C++ template features which are now broadly supported by the compilers.
|
|
|
16. |
Multiple Dispatch: A New Approach Using Templates and RTTI
-
This article focuses on two new techniques based on templates and Run Time Type Identification (RTTI).
|
|
|
17. |
Template Metaprogramming
NEW!
-
With template metaprogramming the compiler acts as a virtual computer, emitting code optimized for a specific purpose or environment.
|
|
|
18. |
Template MetaProgramming in C++
-
Presentation with extended examples C++ template meta-programming. [PDF]
|
|
|
19. |
Templates for Efficient Dynamic Type Checking
NEW!
-
Presents a handy template that makes it easy to check casts without losing performance.
|
|
|
20. |
Traits
-
A new and useful template technique that radically simplifies the interface to class templates instantiable on native C++ types.
|
|
|
21. |
Typed Buffers, Part 1
NEW!
-
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.
|
|
|
22. |
Typed Buffers, Part 2
NEW!
-
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.
|
|
|
23. |
Using Template Functions to Customize Library Behavior
NEW!
-
Looks at function templates and how they can be used to provide hooks for customizing behavior.
|