21 #include <gtest/gtest.h>
30 class Foo :
public Orphanable {
34 void Orphan()
override {
delete this; }
41 TEST(Orphanable, Basic) {
47 OrphanablePtr<Foo>
foo(
new Foo());
52 auto foo = MakeOrphanable<Foo>();
57 auto foo = MakeOrphanable<Foo>(5);
61 class Bar :
public InternallyRefCounted<Bar> {
65 void Orphan()
override { Unref(); }
77 auto bar = MakeOrphanable<Bar>();
82 class Baz :
public InternallyRefCounted<Baz> {
86 void Orphan()
override { Unref(); }
102 auto baz = MakeOrphanable<Baz>();
111 int main(
int argc,
char** argv) {