summaryrefslogtreecommitdiff
path: root/libcult/examples/mm/shptr
diff options
context:
space:
mode:
Diffstat (limited to 'libcult/examples/mm/shptr')
-rw-r--r--libcult/examples/mm/shptr/makefile48
-rw-r--r--libcult/examples/mm/shptr/shptr.cxx73
2 files changed, 0 insertions, 121 deletions
diff --git a/libcult/examples/mm/shptr/makefile b/libcult/examples/mm/shptr/makefile
deleted file mode 100644
index 2bf1598..0000000
--- a/libcult/examples/mm/shptr/makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-# file : examples/mm/shptr/makefile
-# author : Boris Kolpackov <boris@kolpackov.net>
-# copyright : Copyright (c) 2005-2010 Boris Kolpackov
-# license : GNU GPL v2; see accompanying LICENSE file
-
-include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make
-
-cxx_tun := shptr.cxx
-cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o))
-cxx_od := $(cxx_obj:.o=.o.d)
-
-cult.l := $(out_root)/cult/cult.l
-cult.l.cpp-options := $(out_root)/cult/cult.l.cpp-options
-
-shptr := $(out_base)/shptr
-clean := $(out_base)/.clean
-
-
-# Build.
-#
-$(shptr): $(cxx_obj) $(cult.l)
-
-$(cxx_obj) $(cxx_od): $(cult.l.cpp-options)
-
-$(call include-dep,$(cxx_od))
-
-
-# Convenience alias for default target.
-#
-$(out_base)/: $(shptr)
-
-
-# Clean.
-#
-$(clean): $(shptr).o.clean \
- $(addsuffix .cxx.clean,$(cxx_obj)) \
- $(addsuffix .cxx.clean,$(cxx_od))
-
-
-# How to.
-#
-$(call include,$(bld_root)/cxx/o-e.make)
-$(call include,$(bld_root)/cxx/cxx-o.make)
-$(call include,$(bld_root)/cxx/cxx-d.make)
-
-# Dependencies.
-#
-$(call import,$(src_root)/cult/makefile)
diff --git a/libcult/examples/mm/shptr/shptr.cxx b/libcult/examples/mm/shptr/shptr.cxx
deleted file mode 100644
index cb026d4..0000000
--- a/libcult/examples/mm/shptr/shptr.cxx
+++ /dev/null
@@ -1,73 +0,0 @@
-// file : examples/mm/shptr/shptr.cxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#include <cult/mm/shptr.hxx>
-#include <cult/mm/new.hxx> // MM::locate
-#include <cult/mm/counter.hxx> // MM::inc_ref
-
-#include <iostream>
-
-using std::cerr;
-using std::endl;
-
-using namespace Cult;
-using namespace MM;
-
-struct Foo
-{
- virtual ~Foo () {}
- char c;
-};
-
-struct Bar: virtual Foo {char c;};
-
-struct Baz: virtual Foo {char c;};
-
-struct Fox: Bar, Baz {};
-
-
-struct A
-{
- char c[8];
-};
-
-struct B
-{
- char c[8];
-};
-
-struct C : A, B
-{
- char c[8];
-};
-
-int
-main ()
-{
- {
- Baz* bp (new Fox);
- Foo* fp (bp);
-
- Counter* cp (locate (fp, *counted));
-
- inc_ref (bp);
-
- cp->dec_ref ();
-
- if (cp->dec_ref ()) cerr << "good: destroying" << endl;
- else cerr << "bad: leaking" << endl;
-
- delete bp;
- }
-
- {
- Shptr<Fox> pfox (new Fox);
- Shptr<Bar> pbar (pfox);
-
- Shptr<Foo> pfoo;
-
- pfoo = pbar;
- }
-}