diff options
| author | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:11 +0100 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:11 +0100 | 
| commit | 4538829ab86b5a1cd4e845e7eab165029c9d6d46 (patch) | |
| tree | bbadf39aed0610c8f8f7b41fefff47773b8ac205 /libcutl/tests/compiler/traversal/driver.cxx | |
| parent | 23d41842168ac1a1580111b9c5c73500ceee3d57 (diff) | |
| parent | aad5ad9bf0c02aa4e79bc6b7d6c934612fff4026 (diff) | |
Update upstream source from tag 'upstream/4.2.0'
Update to upstream version '4.2.0'
with Debian dir 1b38df7bbcf313223de3c50107ac0255090fe647
Diffstat (limited to 'libcutl/tests/compiler/traversal/driver.cxx')
| -rw-r--r-- | libcutl/tests/compiler/traversal/driver.cxx | 139 | 
1 files changed, 0 insertions, 139 deletions
diff --git a/libcutl/tests/compiler/traversal/driver.cxx b/libcutl/tests/compiler/traversal/driver.cxx deleted file mode 100644 index b1fea74..0000000 --- a/libcutl/tests/compiler/traversal/driver.cxx +++ /dev/null @@ -1,139 +0,0 @@ -// file      : tests/compiler/traversal/driver.cxx -// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC -// license   : MIT; see accompanying LICENSE file - -#include <vector> -#include <iostream> - -#include <cutl/shared-ptr.hxx> - -#include <cutl/compiler/type-info.hxx> -#include <cutl/compiler/traversal.hxx> - -using namespace std; -using namespace cutl; - -// Data types. -// -struct base -{ -  virtual ~base () {} -}; - -struct derived1: base {}; -struct derived2: base {}; - -typedef vector<shared_ptr<base> > objects; - -struct init -{ -  init () -  { -    using compiler::type_info; - -    { -      type_info ti (typeid (base)); -      insert (ti); -    } - -    { -      type_info ti (typeid (derived1)); -      ti.add_base (typeid (base)); -      insert (ti); -    } - -    { -      type_info ti (typeid (derived2)); -      ti.add_base (typeid (base)); -      insert (ti); -    } -  } -} init_; - -// Traversers. -// -template <typename X> -struct traverser: compiler::traverser_impl<X, base>, -                  virtual compiler::dispatcher<base> -{ -  void -  add_traverser (compiler::traverser_map<base>& m) -  { -    compiler::dispatcher<base>::traverser (m); -  } -}; - -typedef traverser<base> base_trav; -typedef traverser<derived1> derived1_trav; -typedef traverser<derived2> derived2_trav; - -struct base_impl: base_trav -{ -  virtual void -  traverse (type&) -  { -    cout << "base_impl: base" << endl; -  } -}; - -struct derived1_impl: derived1_trav -{ -  virtual void -  traverse (type&) -  { -    cout << "derived1_impl: derived1" << endl; -  } -}; - -struct combined_impl: derived1_trav, derived2_trav -{ -  virtual void -  traverse (derived1&) -  { -    cout << "combined_impl: derived1" << endl; -  } - -  virtual void -  traverse (derived2&) -  { -    cout << "combined_impl: derived2" << endl; -  } -}; - -int -main () -{ -  objects o; -  o.push_back (shared_ptr<base> (new (shared) base)); -  o.push_back (shared_ptr<base> (new (shared) derived1)); -  o.push_back (shared_ptr<base> (new (shared) derived2)); - -  base_impl base; -  derived1_impl derived1; -  combined_impl combined; - -  for (objects::iterator i (o.begin ()); i != o.end (); ++i) -    base.dispatch (**i); - -  cout << endl; - -  for (objects::iterator i (o.begin ()); i != o.end (); ++i) -    derived1.dispatch (**i); - -  cout << endl; - -  for (objects::iterator i (o.begin ()); i != o.end (); ++i) -    combined.dispatch (**i); - -  cout << endl; - -  base.add_traverser (derived1); -  for (objects::iterator i (o.begin ()); i != o.end (); ++i) -    base.dispatch (**i); - -  cout << endl; - -  derived1.add_traverser (combined); -  for (objects::iterator i (o.begin ()); i != o.end (); ++i) -    derived1.dispatch (**i); -}  | 
