Languages
- 1421
- Making an Exception
- Exception handling in C++ can save a program from digital death, but it must be treated with care. Kevlin Henney explains how to make programs exception-safe. [PDF]
- 1422
- Optimizing Away C++ Exception Handling
- Describes an optimization that produces modest but useful gains on some existing C++ code, but produces very significant size and speed gains on code that uses empty exception specifications, avoiding otherwise serious performance losses. [PDF]
- 1423
- Smart Pointers Reloaded (III)
- Constructor Tracking - Talks about dealing with exceptions that occur during object initialization by taking a look at smart_ptr initialization that has important teachings for any generic design - and policy-based classes in particular. (Andrei Alexandrescu and David B. Held) [PDF]
- 1424
- Throwing Destructors
- It is becoming increasingly popular to consider throwing destructors a bad practice. This document presents some insights on the problem and shows that maybe throwing from a destructor is not such a bad idea.
- 1425
- Designing C++ Interfaces - Exception Safety
- The ACCU is a non-profit organisation devoted to professionalism in programming at all levels. Although primarily focussed on C and C++, we also have interests in Java, C# and Python. (June 01, 2001)
- 1426
- Constructor Failures (or, The Objects That Never Were)
- Shows what object construction, and construction failure, mean in C++; and that function try blocks are useful to translate an exception thrown from a base or member subobject constructor. (November 01, 2000)
- 1427
- "Pure Virtual Function Called": An Explanation
- This article provides an in-depth look at the "pure virtual function called" error message.
- 1428
- Counted Body Techniques
- Introduces two key concepts: the use of a generic requirements based approach to simplify and adapt the use of the counted body pattern and the ability to dynamically and non-intrusively add capabilities to fixed types using the runtime mixin pattern.
- 1429
- Memory Management in C++
- Covers the design of a global memory manager that is as fast and space-efficient as per-class allocators.
- 1430
- Smart Pointers in Boost
- Introduces smart pointers and takes a look at Boosts various smart pointer templates (scoped_ptr, scoped_array, shared_ptr, and shared_array).
- 1431
- Smart Pointers: What, Why, Which?
- Explains what smart pointers are, why they should be used, and which one should be used.
- 1432
- The Rule of The Big Two
- Matthew and Bjorn update the well-known Rule of The Big Three, explaining which one of those member functions is not always needed. (October 01, 2004)
- 1433
- Memory Hygiene in C and C++: Safe Programming with Risky Data
- Memory management is scary. It should be: A lot can go wrong--often very wrong. But a moderately experienced C or C++ programmer can learn and understand memory hazards completely. (February 06, 2004)
- 1434
- C++ Memory Management: From Fear to Triumph, Part 3
- Presents a list of simple, powerful techniques that can be used to deal with memory in C++ programs. (August 07, 2003)
- 1435
- C++ Memory Management: From Fear to Triumph, Part 2
- This article explains design principles that will help keeping memory management error out of C++ code. (June 19, 2003)
- 1436
- C++ Memory Management: From Fear to Triumph, Part 1
- This article discusses C++ in the context of several other popular languages. It also describes the kinds of memory errors that can occur in C++ programs. (May 08, 2003)
- 1437
- Smart Pointers in C++
- Andrei Alexandrescu discusses smart pointers, from their simplest aspects to their most complex ones and from the most obvious errors in implementing them to the subtlest ones--some of which also happen to be the most gruesome. (April 18, 2003)
- 1438
- C++ Memory and Resource Management
- Stephen Dewhurst discusses how the various features of C++ are used together in memory management, how they sometimes interact in surprising ways, and how to simplify their interactions. (January 24, 2003)
