Yet Another Smart Pointer Library
Why write another C++ smart pointer?
There already exist several high quality smart pointer implementations for C++, most prominently the Boost pointer pantheon and Loki's SmartPtr. For a good comparison of smart pointer implementations and when their use is appropriate please read Herb Sutter's The New C++: Smart(er) Pointers.
In contrast with the expansive features of other libraries, Yasper is a
narrowly focused reference counting pointer. It corresponds closely
with Boost's shared_ptr and Loki's RefCounted/AllowConversion policies.
Yasper allows C++ programmers to forget about memory management without
introducing the Boost's large dependencies or having to learn about
Loki's complicated policy templates.
Philosophy
- small (contained in single header)
- simple (nothing fancy in the code, easy to understand)
- maximum compatibility (drop in replacement for dumb pointers)