Buscar en Mind w/o Soul

lunes, septiembre 24, 2007

Autopunteros C++ y compilación privada

Un artículo que explica los autopunteros de C++, y da un ejemplo del patrón/idiom "compiler-Firewall" para evitar recompilar todo un proyecto cuando cambia la parte privada de un .h.

Using auto_ptr Effectively
The Pimpl Idiom is useful for
reducing project build times because it prevents wide-ranging
recompilations of client code whenever the private portions of C change. For more about the Pimpl Idiom and how best to deploy compiler firewalls, see Items 26 to 30 in the book Exceptional C++ (Addison-Wesley, 2000).

// Example 4(b): A safer Pimpl, using auto_ptr
//

// file c.h
//
class C
{
public:
C();
/*...*/
private:
class CImpl; // forward declaration
auto_ptr<CImpl> pimpl_;
};

// file c.cpp
//
class C::CImpl { /*...*/ };

C::C() : pimpl_( new CImpl ) { }

No hay comentarios: