like c++ template, see like2015 wiki page for description...
Please start from shared_ptr.h
namespace like
{
template <typename T> shared_ptr<T>;
template <typename T> weak_ptr<T>;
template <typename T> atomic_shared_ptr<T>;
template <typename T> atomic_weak_ptr<T>;
}
like::atomic_shared_ptr<T>
could be your good friend in lock-free programming, if you are friend with it.
Please start from sudoku