zcpointer.git
7 years agoRemove unnecessary owned<T>::GetRawPointer().
Robert Sesek [Sat, 8 Oct 2016 21:30:25 +0000 (17:30 -0400)]
Remove unnecessary owned<T>::GetRawPointer().

7 years agoReduce the size of ref<T> to a single pointer.
Robert Sesek [Sat, 8 Oct 2016 21:23:27 +0000 (17:23 -0400)]
Reduce the size of ref<T> to a single pointer.

Rather than tracking |T*|, |OwnedPtrDeleter<T>|, and a |bool|; ref<T> now just
holds an |owned<T>*|. It uses uintptr_t's max value as a deletion sentinel
rather than a separate flag. And with the actual owned<T>*, the deleter doesn't
need to be held separately either.

7 years agoAdd a README.
Robert Sesek [Sat, 8 Oct 2016 20:14:29 +0000 (16:14 -0400)]
Add a README.

7 years agoFix ref::operator= for non-const lvalue binding to a temporary.
Robert Sesek [Sat, 8 Oct 2016 19:29:59 +0000 (15:29 -0400)]
Fix ref::operator= for non-const lvalue binding to a temporary.

Implement operator= manually and reimplement the copy-ctor using it, rather than
vice versa. In addition, deleter_ gets changed to a pointer rather than
reference, so that a default ctor can be added.

7 years agoMove exception raising into a .cc file so that -fno-exceptions can be used with the...
Robert Sesek [Sat, 8 Oct 2016 19:29:27 +0000 (15:29 -0400)]
Move exception raising into a .cc file so that -fno-exceptions can be used with the header.

7 years agoAdd a Makefile.
Robert Sesek [Sat, 8 Oct 2016 18:59:18 +0000 (14:59 -0400)]
Add a Makefile.

7 years agoMake ref(owned<T>) explicit.
Robert Sesek [Sat, 8 Oct 2016 18:48:57 +0000 (14:48 -0400)]
Make ref(owned<T>) explicit.

7 years agoInitial implementation of zero-cost unique_ptr with exploding weak references.
Robert Sesek [Sat, 8 Oct 2016 18:16:46 +0000 (14:16 -0400)]
Initial implementation of zero-cost unique_ptr with exploding weak references.