diff --git a/gdb/testsuite/gdb.cp/pass-by-ref-2.cc b/gdb/testsuite/gdb.cp/pass-by-ref-2.cc
new file mode 100644
index 00000000000..20b055ce08a
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/pass-by-ref-2.cc
@@ -0,0 +1,179 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2019 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+class ByVal {
+public:
+  ByVal (void);
+
+  int x;
+};
+
+ByVal::ByVal (void)
+{
+  x = 2;
+}
+
+class ByRef {
+public:
+  ByRef (void);
+
+  ByRef (const ByRef &rhs);
+
+  int x;
+};
+
+ByRef::ByRef (void)
+{
+  x = 2;
+}
+
+ByRef::ByRef (const ByRef &rhs)
+{
+  x = 3; /* ByRef-cctor */
+}
+
+class ArrayContainerByVal {
+public:
+  ByVal items[2];
+};
+
+int
+cbvArrayContainerByVal (ArrayContainerByVal arg)
+{
+  arg.items[0].x += 4;  // intentionally modify
+  return arg.items[0].x;
+}
+
+class ArrayContainerByRef {
+public:
+  ByRef items[2];
+};
+
+int
+cbvArrayContainerByRef (ArrayContainerByRef arg)
+{
+  arg.items[0].x += 4;  // intentionally modify
+  return arg.items[0].x;
+}
+
+class DynamicBase {
+public:
+  DynamicBase (void);
+
+  virtual int get (void);
+
+  int x;
+};
+
+DynamicBase::DynamicBase (void)
+{
+  x = 2;
+}
+
+int
+DynamicBase::get (void)
+{
+  return 42;
+}
+
+class Dynamic : public DynamicBase {
+public:
+  virtual int get (void);
+};
+
+int
+Dynamic::get (void)
+{
+  return 9999;
+}
+
+int
+cbvDynamic (DynamicBase arg)
+{
+  arg.x += 4;  // intentionally modify
+  return arg.x + arg.get ();
+}
+
+class Inlined {
+public:
+  Inlined (void);
+
+  __attribute__((always_inline))
+  Inlined (const Inlined &rhs)
+  {
+    x = 3;
+  }
+
+  int x;
+};
+
+Inlined::Inlined (void)
+{
+  x = 2;
+}
+
+int
+cbvInlined (Inlined arg)
+{
+  arg.x += 4;  // intentionally modify
+  return arg.x;
+}
+
+class DtorDel {
+public:
+  DtorDel (void);
+
+  ~DtorDel (void) = delete;
+
+  int x;
+};
+
+DtorDel::DtorDel (void)
+{
+  x = 2;
+}
+
+int
+cbvDtorDel (DtorDel arg)
+{
+  // Calling this method should be rejected
+  return arg.x;
+}
+
+ArrayContainerByVal arrayContainerByVal;
+ArrayContainerByRef arrayContainerByRef;
+Dynamic dynamic;
+Inlined inlined;
+// Cannot stack-allocate DtorDel
+DtorDel *dtorDel;
+
+int
+main (void)
+{
+  int v;
+  dtorDel = new DtorDel;
+  /* Explicitly call the cbv function to make sure the compiler
+     will not omit any code in the binary.  */
+  v = cbvArrayContainerByVal (arrayContainerByVal);
+  v = cbvArrayContainerByRef (arrayContainerByRef);
+  v = cbvDynamic (dynamic);
+  v = cbvInlined (inlined);
+
+  /* stop here */
+
+  return 0;
+}
diff --git a/gdb/testsuite/gdb.cp/pass-by-ref-2.exp b/gdb/testsuite/gdb.cp/pass-by-ref-2.exp
new file mode 100644
index 00000000000..b02b0d9786a
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/pass-by-ref-2.exp
@@ -0,0 +1,85 @@
+# Copyright 2019 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Check that GDB can call C++ functions whose parameters have
+# object type, and are either passed by value or implicitly by reference.
+#
+# This is a companion test to pass-by-ref.exp.  In this test, the input
+# is manually-written.  In pass-by-ref.exp, the test input is generated.
+#
+# We include tests for classes that
+# - contain arrays as fields,
+# - are dynamic (i.e. have virtual methods)
+# - have inlined copy ctor
+# - have deleted destructor
+
+if {[skip_cplus_tests]} {
+    untested "c++ test skipped"
+    continue
+}
+
+standard_testfile .cc
+
+set options {debug c++ additional_flags=-std=c++11}
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile $options]} {
+    return -1
+}
+
+if {![runto_main]} {
+    untested "failed to run to main"
+    return -1
+}
+
+set bp_location [gdb_get_line_number "stop here"]
+gdb_breakpoint $bp_location
+gdb_continue_to_breakpoint "end of main" ".*return .*;"
+
+gdb_test "print cbvArrayContainerByVal (arrayContainerByVal)" " = 6" \
+    "call cbvArrayContainerByVal"
+gdb_test "print arrayContainerByVal.items\[0\].x" " = 2" \
+    "cbv argument 'arrayContainerByVal' should not change"
+
+gdb_test "print cbvArrayContainerByRef (arrayContainerByRef)" " = 7" \
+    "call cbvArrayContainerByRef"
+gdb_test "print arrayContainerByRef.items\[0\].x" " = 2" \
+    "cbv argument 'arrayContainerByRef' should not change"
+
+gdb_test "print cbvDynamic (dynamic)" " = 48" \
+    "call cbvDynamic"
+gdb_test "print dynamic.x" " = 2" \
+    "cbv argument 'dynamic' should not change"
+
+set sig "\"Inlined\:\:Inlined\\(.*Inlined const\&\\)\""
+gdb_test "print cbvInlined (inlined)" \
+    "evaluation .* requires .* function $sig." \
+    "copy constructor not available"
+
+gdb_test "print cbvDtorDel (*dtorDel)" \
+    ".* cannot be evaluated .* 'DtorDel' is not destructible" \
+    "type not destructible"
+
+# Test that we get a breakpoint from the cctor during infcall and
+# we can examine arguments.  This is a test that the dummy frame
+# of the copy constructor is set up correctly by the infcall mechanism.
+set bp_location [gdb_get_line_number "ByRef-cctor"]
+gdb_breakpoint $bp_location
+gdb_test "print cbvArrayContainerByRef (arrayContainerByRef)" \
+    ".*The program being debugged stopped.*" \
+    "call cbvArrayContainerByRef with BP"
+gdb_test "backtrace" [multi_line \
+    "#0  ByRef\:\:ByRef .* at .*$srcfile:$bp_location" \
+    "#1  .* ArrayContainerByRef::ArrayContainerByRef .*" \
+    "#2  <function called from gdb>" \
+    "#3  main.*"]
diff --git a/gdb/testsuite/gdb.cp/pass-by-ref.cc b/gdb/testsuite/gdb.cp/pass-by-ref.cc
index bbe450a0f71..efad178d574 100644
--- a/gdb/testsuite/gdb.cp/pass-by-ref.cc
+++ b/gdb/testsuite/gdb.cp/pass-by-ref.cc
@@ -15,65 +15,7373 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-class Obj {
+/*** THIS FILE IS GENERATED BY THE TEST.  ***/
+/* If you regenerate, auto-indent and delete-trailing-whitespace
+   before committing.  */
+
+static int tracer = 0;
+
+/* The call-by-value function.  */
+template <class T>
+int
+cbv (T arg)
+{
+  arg.data[0] += 4; // intentionally modify the arg
+  return arg.data[0];
+}
+
+template <class T>
+int
+cbv_container (T arg)
+{
+  arg.item.data[0] += 4;  // intentionally modify
+  return arg.item.data[0];
+}
+
+
+/*** C++ class Small_absent_absent_absent ***/
+class Small_absent_absent_absent {
+public:
+  Small_absent_absent_absent (void);
+
+
+  int data[2];
+};
+
+Small_absent_absent_absent::Small_absent_absent_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_absent_absent_absent Small_absent_absent_absent_var; /* global var */
+
+template int cbv<Small_absent_absent_absent> (Small_absent_absent_absent arg);
+/*** C++ class Large_absent_absent_absent ***/
+class Large_absent_absent_absent {
+public:
+  Large_absent_absent_absent (void);
+
+
+  int data[150];
+};
+
+Large_absent_absent_absent::Large_absent_absent_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_absent_absent_absent Large_absent_absent_absent_var; /* global var */
+
+template int cbv<Large_absent_absent_absent> (Large_absent_absent_absent arg);
+/*** Class derived from Small_absent_absent_absent ***/
+class Derived_absent_absent_absent : public Small_absent_absent_absent {
+public:
+};
+
+Derived_absent_absent_absent Derived_absent_absent_absent_var; /* global var */
+
+template int cbv<Derived_absent_absent_absent> (Derived_absent_absent_absent arg);
+/*** Class that contains Small_absent_absent_absent ***/
+class Container_absent_absent_absent {
+public:
+  Small_absent_absent_absent item;
+};
+
+Container_absent_absent_absent Container_absent_absent_absent_var; /* global var */
+
+template int cbv_container<Container_absent_absent_absent> (Container_absent_absent_absent arg);
+/*** C++ class Small_absent_absent_explicit ***/
+class Small_absent_absent_explicit {
+public:
+  Small_absent_absent_explicit (void);
+  Small_absent_absent_explicit (Small_absent_absent_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_absent_absent_explicit::Small_absent_absent_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_absent_explicit::Small_absent_absent_explicit (Small_absent_absent_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_absent_absent_explicit Small_absent_absent_explicit_var; /* global var */
+
+template int cbv<Small_absent_absent_explicit> (Small_absent_absent_explicit arg);
+/*** C++ class Large_absent_absent_explicit ***/
+class Large_absent_absent_explicit {
+public:
+  Large_absent_absent_explicit (void);
+  Large_absent_absent_explicit (Large_absent_absent_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_absent_absent_explicit::Large_absent_absent_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_absent_explicit::Large_absent_absent_explicit (Large_absent_absent_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_absent_absent_explicit Large_absent_absent_explicit_var; /* global var */
+
+template int cbv<Large_absent_absent_explicit> (Large_absent_absent_explicit arg);
+/*** Class derived from Small_absent_absent_explicit ***/
+class Derived_absent_absent_explicit : public Small_absent_absent_explicit {
+public:
+};
+
+Derived_absent_absent_explicit Derived_absent_absent_explicit_var; /* global var */
+
+template int cbv<Derived_absent_absent_explicit> (Derived_absent_absent_explicit arg);
+/*** Class that contains Small_absent_absent_explicit ***/
+class Container_absent_absent_explicit {
+public:
+  Small_absent_absent_explicit item;
+};
+
+Container_absent_absent_explicit Container_absent_absent_explicit_var; /* global var */
+
+template int cbv_container<Container_absent_absent_explicit> (Container_absent_absent_explicit arg);
+/*** C++ class Small_absent_absent_defaultedIn ***/
+class Small_absent_absent_defaultedIn {
+public:
+  Small_absent_absent_defaultedIn (void);
+  Small_absent_absent_defaultedIn (Small_absent_absent_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_absent_absent_defaultedIn::Small_absent_absent_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_absent_absent_defaultedIn Small_absent_absent_defaultedIn_var; /* global var */
+
+template int cbv<Small_absent_absent_defaultedIn> (Small_absent_absent_defaultedIn arg);
+/*** C++ class Large_absent_absent_defaultedIn ***/
+class Large_absent_absent_defaultedIn {
+public:
+  Large_absent_absent_defaultedIn (void);
+  Large_absent_absent_defaultedIn (Large_absent_absent_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_absent_absent_defaultedIn::Large_absent_absent_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_absent_absent_defaultedIn Large_absent_absent_defaultedIn_var; /* global var */
+
+template int cbv<Large_absent_absent_defaultedIn> (Large_absent_absent_defaultedIn arg);
+/*** Class derived from Small_absent_absent_defaultedIn ***/
+class Derived_absent_absent_defaultedIn : public Small_absent_absent_defaultedIn {
+public:
+};
+
+Derived_absent_absent_defaultedIn Derived_absent_absent_defaultedIn_var; /* global var */
+
+template int cbv<Derived_absent_absent_defaultedIn> (Derived_absent_absent_defaultedIn arg);
+/*** Class that contains Small_absent_absent_defaultedIn ***/
+class Container_absent_absent_defaultedIn {
+public:
+  Small_absent_absent_defaultedIn item;
+};
+
+Container_absent_absent_defaultedIn Container_absent_absent_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_absent_absent_defaultedIn> (Container_absent_absent_defaultedIn arg);
+/*** C++ class Small_absent_absent_defaultedOut ***/
+class Small_absent_absent_defaultedOut {
+public:
+  Small_absent_absent_defaultedOut (void);
+  Small_absent_absent_defaultedOut (Small_absent_absent_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_absent_absent_defaultedOut::Small_absent_absent_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_absent_defaultedOut::Small_absent_absent_defaultedOut (Small_absent_absent_defaultedOut &&rhs) = default;
+
+
+Small_absent_absent_defaultedOut Small_absent_absent_defaultedOut_var; /* global var */
+
+template int cbv<Small_absent_absent_defaultedOut> (Small_absent_absent_defaultedOut arg);
+/*** C++ class Large_absent_absent_defaultedOut ***/
+class Large_absent_absent_defaultedOut {
+public:
+  Large_absent_absent_defaultedOut (void);
+  Large_absent_absent_defaultedOut (Large_absent_absent_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_absent_absent_defaultedOut::Large_absent_absent_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_absent_defaultedOut::Large_absent_absent_defaultedOut (Large_absent_absent_defaultedOut &&rhs) = default;
+
+
+Large_absent_absent_defaultedOut Large_absent_absent_defaultedOut_var; /* global var */
+
+template int cbv<Large_absent_absent_defaultedOut> (Large_absent_absent_defaultedOut arg);
+/*** Class derived from Small_absent_absent_defaultedOut ***/
+class Derived_absent_absent_defaultedOut : public Small_absent_absent_defaultedOut {
+public:
+};
+
+Derived_absent_absent_defaultedOut Derived_absent_absent_defaultedOut_var; /* global var */
+
+template int cbv<Derived_absent_absent_defaultedOut> (Derived_absent_absent_defaultedOut arg);
+/*** Class that contains Small_absent_absent_defaultedOut ***/
+class Container_absent_absent_defaultedOut {
+public:
+  Small_absent_absent_defaultedOut item;
+};
+
+Container_absent_absent_defaultedOut Container_absent_absent_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_absent_absent_defaultedOut> (Container_absent_absent_defaultedOut arg);
+/*** C++ class Small_absent_absent_deleted ***/
+class Small_absent_absent_deleted {
+public:
+  Small_absent_absent_deleted (void);
+  Small_absent_absent_deleted (Small_absent_absent_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_absent_absent_deleted::Small_absent_absent_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_absent_absent_deleted Small_absent_absent_deleted_var; /* global var */
+
+template int cbv<Small_absent_absent_deleted> (Small_absent_absent_deleted arg);
+/*** C++ class Large_absent_absent_deleted ***/
+class Large_absent_absent_deleted {
+public:
+  Large_absent_absent_deleted (void);
+  Large_absent_absent_deleted (Large_absent_absent_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_absent_absent_deleted::Large_absent_absent_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_absent_absent_deleted Large_absent_absent_deleted_var; /* global var */
+
+template int cbv<Large_absent_absent_deleted> (Large_absent_absent_deleted arg);
+/*** Class derived from Small_absent_absent_deleted ***/
+class Derived_absent_absent_deleted : public Small_absent_absent_deleted {
+public:
+};
+
+Derived_absent_absent_deleted Derived_absent_absent_deleted_var; /* global var */
+
+template int cbv<Derived_absent_absent_deleted> (Derived_absent_absent_deleted arg);
+/*** Class that contains Small_absent_absent_deleted ***/
+class Container_absent_absent_deleted {
+public:
+  Small_absent_absent_deleted item;
+};
+
+Container_absent_absent_deleted Container_absent_absent_deleted_var; /* global var */
+
+template int cbv_container<Container_absent_absent_deleted> (Container_absent_absent_deleted arg);
+/*** C++ class Small_absent_explicit_absent ***/
+class Small_absent_explicit_absent {
+public:
+  Small_absent_explicit_absent (void);
+  ~Small_absent_explicit_absent (void);
+
+
+  int data[2];
+};
+
+Small_absent_explicit_absent::Small_absent_explicit_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_explicit_absent::~Small_absent_explicit_absent (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_absent_explicit_absent Small_absent_explicit_absent_var; /* global var */
+
+template int cbv<Small_absent_explicit_absent> (Small_absent_explicit_absent arg);
+/*** C++ class Large_absent_explicit_absent ***/
+class Large_absent_explicit_absent {
+public:
+  Large_absent_explicit_absent (void);
+  ~Large_absent_explicit_absent (void);
+
+
+  int data[150];
+};
+
+Large_absent_explicit_absent::Large_absent_explicit_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_explicit_absent::~Large_absent_explicit_absent (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_absent_explicit_absent Large_absent_explicit_absent_var; /* global var */
+
+template int cbv<Large_absent_explicit_absent> (Large_absent_explicit_absent arg);
+/*** Class derived from Small_absent_explicit_absent ***/
+class Derived_absent_explicit_absent : public Small_absent_explicit_absent {
+public:
+};
+
+Derived_absent_explicit_absent Derived_absent_explicit_absent_var; /* global var */
+
+template int cbv<Derived_absent_explicit_absent> (Derived_absent_explicit_absent arg);
+/*** Class that contains Small_absent_explicit_absent ***/
+class Container_absent_explicit_absent {
+public:
+  Small_absent_explicit_absent item;
+};
+
+Container_absent_explicit_absent Container_absent_explicit_absent_var; /* global var */
+
+template int cbv_container<Container_absent_explicit_absent> (Container_absent_explicit_absent arg);
+/*** C++ class Small_absent_explicit_explicit ***/
+class Small_absent_explicit_explicit {
+public:
+  Small_absent_explicit_explicit (void);
+  ~Small_absent_explicit_explicit (void);
+  Small_absent_explicit_explicit (Small_absent_explicit_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_absent_explicit_explicit::Small_absent_explicit_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_explicit_explicit::~Small_absent_explicit_explicit (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_absent_explicit_explicit::Small_absent_explicit_explicit (Small_absent_explicit_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_absent_explicit_explicit Small_absent_explicit_explicit_var; /* global var */
+
+template int cbv<Small_absent_explicit_explicit> (Small_absent_explicit_explicit arg);
+/*** C++ class Large_absent_explicit_explicit ***/
+class Large_absent_explicit_explicit {
+public:
+  Large_absent_explicit_explicit (void);
+  ~Large_absent_explicit_explicit (void);
+  Large_absent_explicit_explicit (Large_absent_explicit_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_absent_explicit_explicit::Large_absent_explicit_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_explicit_explicit::~Large_absent_explicit_explicit (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_absent_explicit_explicit::Large_absent_explicit_explicit (Large_absent_explicit_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_absent_explicit_explicit Large_absent_explicit_explicit_var; /* global var */
+
+template int cbv<Large_absent_explicit_explicit> (Large_absent_explicit_explicit arg);
+/*** Class derived from Small_absent_explicit_explicit ***/
+class Derived_absent_explicit_explicit : public Small_absent_explicit_explicit {
+public:
+};
+
+Derived_absent_explicit_explicit Derived_absent_explicit_explicit_var; /* global var */
+
+template int cbv<Derived_absent_explicit_explicit> (Derived_absent_explicit_explicit arg);
+/*** Class that contains Small_absent_explicit_explicit ***/
+class Container_absent_explicit_explicit {
+public:
+  Small_absent_explicit_explicit item;
+};
+
+Container_absent_explicit_explicit Container_absent_explicit_explicit_var; /* global var */
+
+template int cbv_container<Container_absent_explicit_explicit> (Container_absent_explicit_explicit arg);
+/*** C++ class Small_absent_explicit_defaultedIn ***/
+class Small_absent_explicit_defaultedIn {
+public:
+  Small_absent_explicit_defaultedIn (void);
+  ~Small_absent_explicit_defaultedIn (void);
+  Small_absent_explicit_defaultedIn (Small_absent_explicit_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_absent_explicit_defaultedIn::Small_absent_explicit_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_explicit_defaultedIn::~Small_absent_explicit_defaultedIn (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_absent_explicit_defaultedIn Small_absent_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Small_absent_explicit_defaultedIn> (Small_absent_explicit_defaultedIn arg);
+/*** C++ class Large_absent_explicit_defaultedIn ***/
+class Large_absent_explicit_defaultedIn {
+public:
+  Large_absent_explicit_defaultedIn (void);
+  ~Large_absent_explicit_defaultedIn (void);
+  Large_absent_explicit_defaultedIn (Large_absent_explicit_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_absent_explicit_defaultedIn::Large_absent_explicit_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_explicit_defaultedIn::~Large_absent_explicit_defaultedIn (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_absent_explicit_defaultedIn Large_absent_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Large_absent_explicit_defaultedIn> (Large_absent_explicit_defaultedIn arg);
+/*** Class derived from Small_absent_explicit_defaultedIn ***/
+class Derived_absent_explicit_defaultedIn : public Small_absent_explicit_defaultedIn {
+public:
+};
+
+Derived_absent_explicit_defaultedIn Derived_absent_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Derived_absent_explicit_defaultedIn> (Derived_absent_explicit_defaultedIn arg);
+/*** Class that contains Small_absent_explicit_defaultedIn ***/
+class Container_absent_explicit_defaultedIn {
+public:
+  Small_absent_explicit_defaultedIn item;
+};
+
+Container_absent_explicit_defaultedIn Container_absent_explicit_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_absent_explicit_defaultedIn> (Container_absent_explicit_defaultedIn arg);
+/*** C++ class Small_absent_explicit_defaultedOut ***/
+class Small_absent_explicit_defaultedOut {
+public:
+  Small_absent_explicit_defaultedOut (void);
+  ~Small_absent_explicit_defaultedOut (void);
+  Small_absent_explicit_defaultedOut (Small_absent_explicit_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_absent_explicit_defaultedOut::Small_absent_explicit_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_explicit_defaultedOut::~Small_absent_explicit_defaultedOut (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_absent_explicit_defaultedOut::Small_absent_explicit_defaultedOut (Small_absent_explicit_defaultedOut &&rhs) = default;
+
+
+Small_absent_explicit_defaultedOut Small_absent_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Small_absent_explicit_defaultedOut> (Small_absent_explicit_defaultedOut arg);
+/*** C++ class Large_absent_explicit_defaultedOut ***/
+class Large_absent_explicit_defaultedOut {
+public:
+  Large_absent_explicit_defaultedOut (void);
+  ~Large_absent_explicit_defaultedOut (void);
+  Large_absent_explicit_defaultedOut (Large_absent_explicit_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_absent_explicit_defaultedOut::Large_absent_explicit_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_explicit_defaultedOut::~Large_absent_explicit_defaultedOut (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_absent_explicit_defaultedOut::Large_absent_explicit_defaultedOut (Large_absent_explicit_defaultedOut &&rhs) = default;
+
+
+Large_absent_explicit_defaultedOut Large_absent_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Large_absent_explicit_defaultedOut> (Large_absent_explicit_defaultedOut arg);
+/*** Class derived from Small_absent_explicit_defaultedOut ***/
+class Derived_absent_explicit_defaultedOut : public Small_absent_explicit_defaultedOut {
+public:
+};
+
+Derived_absent_explicit_defaultedOut Derived_absent_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Derived_absent_explicit_defaultedOut> (Derived_absent_explicit_defaultedOut arg);
+/*** Class that contains Small_absent_explicit_defaultedOut ***/
+class Container_absent_explicit_defaultedOut {
+public:
+  Small_absent_explicit_defaultedOut item;
+};
+
+Container_absent_explicit_defaultedOut Container_absent_explicit_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_absent_explicit_defaultedOut> (Container_absent_explicit_defaultedOut arg);
+/*** C++ class Small_absent_explicit_deleted ***/
+class Small_absent_explicit_deleted {
+public:
+  Small_absent_explicit_deleted (void);
+  ~Small_absent_explicit_deleted (void);
+  Small_absent_explicit_deleted (Small_absent_explicit_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_absent_explicit_deleted::Small_absent_explicit_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_explicit_deleted::~Small_absent_explicit_deleted (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_absent_explicit_deleted Small_absent_explicit_deleted_var; /* global var */
+
+template int cbv<Small_absent_explicit_deleted> (Small_absent_explicit_deleted arg);
+/*** C++ class Large_absent_explicit_deleted ***/
+class Large_absent_explicit_deleted {
+public:
+  Large_absent_explicit_deleted (void);
+  ~Large_absent_explicit_deleted (void);
+  Large_absent_explicit_deleted (Large_absent_explicit_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_absent_explicit_deleted::Large_absent_explicit_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_explicit_deleted::~Large_absent_explicit_deleted (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_absent_explicit_deleted Large_absent_explicit_deleted_var; /* global var */
+
+template int cbv<Large_absent_explicit_deleted> (Large_absent_explicit_deleted arg);
+/*** Class derived from Small_absent_explicit_deleted ***/
+class Derived_absent_explicit_deleted : public Small_absent_explicit_deleted {
+public:
+};
+
+Derived_absent_explicit_deleted Derived_absent_explicit_deleted_var; /* global var */
+
+template int cbv<Derived_absent_explicit_deleted> (Derived_absent_explicit_deleted arg);
+/*** Class that contains Small_absent_explicit_deleted ***/
+class Container_absent_explicit_deleted {
+public:
+  Small_absent_explicit_deleted item;
+};
+
+Container_absent_explicit_deleted Container_absent_explicit_deleted_var; /* global var */
+
+template int cbv_container<Container_absent_explicit_deleted> (Container_absent_explicit_deleted arg);
+/*** C++ class Small_absent_defaultedIn_absent ***/
+class Small_absent_defaultedIn_absent {
+public:
+  Small_absent_defaultedIn_absent (void);
+  ~Small_absent_defaultedIn_absent (void) = default;
+
+
+  int data[2];
+};
+
+Small_absent_defaultedIn_absent::Small_absent_defaultedIn_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_absent_defaultedIn_absent Small_absent_defaultedIn_absent_var; /* global var */
+
+template int cbv<Small_absent_defaultedIn_absent> (Small_absent_defaultedIn_absent arg);
+/*** C++ class Large_absent_defaultedIn_absent ***/
+class Large_absent_defaultedIn_absent {
+public:
+  Large_absent_defaultedIn_absent (void);
+  ~Large_absent_defaultedIn_absent (void) = default;
+
+
+  int data[150];
+};
+
+Large_absent_defaultedIn_absent::Large_absent_defaultedIn_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_absent_defaultedIn_absent Large_absent_defaultedIn_absent_var; /* global var */
+
+template int cbv<Large_absent_defaultedIn_absent> (Large_absent_defaultedIn_absent arg);
+/*** Class derived from Small_absent_defaultedIn_absent ***/
+class Derived_absent_defaultedIn_absent : public Small_absent_defaultedIn_absent {
+public:
+};
+
+Derived_absent_defaultedIn_absent Derived_absent_defaultedIn_absent_var; /* global var */
+
+template int cbv<Derived_absent_defaultedIn_absent> (Derived_absent_defaultedIn_absent arg);
+/*** Class that contains Small_absent_defaultedIn_absent ***/
+class Container_absent_defaultedIn_absent {
+public:
+  Small_absent_defaultedIn_absent item;
+};
+
+Container_absent_defaultedIn_absent Container_absent_defaultedIn_absent_var; /* global var */
+
+template int cbv_container<Container_absent_defaultedIn_absent> (Container_absent_defaultedIn_absent arg);
+/*** C++ class Small_absent_defaultedIn_explicit ***/
+class Small_absent_defaultedIn_explicit {
+public:
+  Small_absent_defaultedIn_explicit (void);
+  ~Small_absent_defaultedIn_explicit (void) = default;
+  Small_absent_defaultedIn_explicit (Small_absent_defaultedIn_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_absent_defaultedIn_explicit::Small_absent_defaultedIn_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_defaultedIn_explicit::Small_absent_defaultedIn_explicit (Small_absent_defaultedIn_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_absent_defaultedIn_explicit Small_absent_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Small_absent_defaultedIn_explicit> (Small_absent_defaultedIn_explicit arg);
+/*** C++ class Large_absent_defaultedIn_explicit ***/
+class Large_absent_defaultedIn_explicit {
+public:
+  Large_absent_defaultedIn_explicit (void);
+  ~Large_absent_defaultedIn_explicit (void) = default;
+  Large_absent_defaultedIn_explicit (Large_absent_defaultedIn_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_absent_defaultedIn_explicit::Large_absent_defaultedIn_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_defaultedIn_explicit::Large_absent_defaultedIn_explicit (Large_absent_defaultedIn_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_absent_defaultedIn_explicit Large_absent_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Large_absent_defaultedIn_explicit> (Large_absent_defaultedIn_explicit arg);
+/*** Class derived from Small_absent_defaultedIn_explicit ***/
+class Derived_absent_defaultedIn_explicit : public Small_absent_defaultedIn_explicit {
+public:
+};
+
+Derived_absent_defaultedIn_explicit Derived_absent_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Derived_absent_defaultedIn_explicit> (Derived_absent_defaultedIn_explicit arg);
+/*** Class that contains Small_absent_defaultedIn_explicit ***/
+class Container_absent_defaultedIn_explicit {
+public:
+  Small_absent_defaultedIn_explicit item;
+};
+
+Container_absent_defaultedIn_explicit Container_absent_defaultedIn_explicit_var; /* global var */
+
+template int cbv_container<Container_absent_defaultedIn_explicit> (Container_absent_defaultedIn_explicit arg);
+/*** C++ class Small_absent_defaultedIn_defaultedIn ***/
+class Small_absent_defaultedIn_defaultedIn {
+public:
+  Small_absent_defaultedIn_defaultedIn (void);
+  ~Small_absent_defaultedIn_defaultedIn (void) = default;
+  Small_absent_defaultedIn_defaultedIn (Small_absent_defaultedIn_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_absent_defaultedIn_defaultedIn::Small_absent_defaultedIn_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_absent_defaultedIn_defaultedIn Small_absent_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Small_absent_defaultedIn_defaultedIn> (Small_absent_defaultedIn_defaultedIn arg);
+/*** C++ class Large_absent_defaultedIn_defaultedIn ***/
+class Large_absent_defaultedIn_defaultedIn {
+public:
+  Large_absent_defaultedIn_defaultedIn (void);
+  ~Large_absent_defaultedIn_defaultedIn (void) = default;
+  Large_absent_defaultedIn_defaultedIn (Large_absent_defaultedIn_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_absent_defaultedIn_defaultedIn::Large_absent_defaultedIn_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_absent_defaultedIn_defaultedIn Large_absent_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Large_absent_defaultedIn_defaultedIn> (Large_absent_defaultedIn_defaultedIn arg);
+/*** Class derived from Small_absent_defaultedIn_defaultedIn ***/
+class Derived_absent_defaultedIn_defaultedIn : public Small_absent_defaultedIn_defaultedIn {
+public:
+};
+
+Derived_absent_defaultedIn_defaultedIn Derived_absent_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Derived_absent_defaultedIn_defaultedIn> (Derived_absent_defaultedIn_defaultedIn arg);
+/*** Class that contains Small_absent_defaultedIn_defaultedIn ***/
+class Container_absent_defaultedIn_defaultedIn {
+public:
+  Small_absent_defaultedIn_defaultedIn item;
+};
+
+Container_absent_defaultedIn_defaultedIn Container_absent_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_absent_defaultedIn_defaultedIn> (Container_absent_defaultedIn_defaultedIn arg);
+/*** C++ class Small_absent_defaultedIn_defaultedOut ***/
+class Small_absent_defaultedIn_defaultedOut {
+public:
+  Small_absent_defaultedIn_defaultedOut (void);
+  ~Small_absent_defaultedIn_defaultedOut (void) = default;
+  Small_absent_defaultedIn_defaultedOut (Small_absent_defaultedIn_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_absent_defaultedIn_defaultedOut::Small_absent_defaultedIn_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_defaultedIn_defaultedOut::Small_absent_defaultedIn_defaultedOut (Small_absent_defaultedIn_defaultedOut &&rhs) = default;
+
+
+Small_absent_defaultedIn_defaultedOut Small_absent_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Small_absent_defaultedIn_defaultedOut> (Small_absent_defaultedIn_defaultedOut arg);
+/*** C++ class Large_absent_defaultedIn_defaultedOut ***/
+class Large_absent_defaultedIn_defaultedOut {
+public:
+  Large_absent_defaultedIn_defaultedOut (void);
+  ~Large_absent_defaultedIn_defaultedOut (void) = default;
+  Large_absent_defaultedIn_defaultedOut (Large_absent_defaultedIn_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_absent_defaultedIn_defaultedOut::Large_absent_defaultedIn_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_defaultedIn_defaultedOut::Large_absent_defaultedIn_defaultedOut (Large_absent_defaultedIn_defaultedOut &&rhs) = default;
+
+
+Large_absent_defaultedIn_defaultedOut Large_absent_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Large_absent_defaultedIn_defaultedOut> (Large_absent_defaultedIn_defaultedOut arg);
+/*** Class derived from Small_absent_defaultedIn_defaultedOut ***/
+class Derived_absent_defaultedIn_defaultedOut : public Small_absent_defaultedIn_defaultedOut {
+public:
+};
+
+Derived_absent_defaultedIn_defaultedOut Derived_absent_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Derived_absent_defaultedIn_defaultedOut> (Derived_absent_defaultedIn_defaultedOut arg);
+/*** Class that contains Small_absent_defaultedIn_defaultedOut ***/
+class Container_absent_defaultedIn_defaultedOut {
+public:
+  Small_absent_defaultedIn_defaultedOut item;
+};
+
+Container_absent_defaultedIn_defaultedOut Container_absent_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_absent_defaultedIn_defaultedOut> (Container_absent_defaultedIn_defaultedOut arg);
+/*** C++ class Small_absent_defaultedIn_deleted ***/
+class Small_absent_defaultedIn_deleted {
+public:
+  Small_absent_defaultedIn_deleted (void);
+  ~Small_absent_defaultedIn_deleted (void) = default;
+  Small_absent_defaultedIn_deleted (Small_absent_defaultedIn_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_absent_defaultedIn_deleted::Small_absent_defaultedIn_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_absent_defaultedIn_deleted Small_absent_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Small_absent_defaultedIn_deleted> (Small_absent_defaultedIn_deleted arg);
+/*** C++ class Large_absent_defaultedIn_deleted ***/
+class Large_absent_defaultedIn_deleted {
+public:
+  Large_absent_defaultedIn_deleted (void);
+  ~Large_absent_defaultedIn_deleted (void) = default;
+  Large_absent_defaultedIn_deleted (Large_absent_defaultedIn_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_absent_defaultedIn_deleted::Large_absent_defaultedIn_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_absent_defaultedIn_deleted Large_absent_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Large_absent_defaultedIn_deleted> (Large_absent_defaultedIn_deleted arg);
+/*** Class derived from Small_absent_defaultedIn_deleted ***/
+class Derived_absent_defaultedIn_deleted : public Small_absent_defaultedIn_deleted {
+public:
+};
+
+Derived_absent_defaultedIn_deleted Derived_absent_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Derived_absent_defaultedIn_deleted> (Derived_absent_defaultedIn_deleted arg);
+/*** Class that contains Small_absent_defaultedIn_deleted ***/
+class Container_absent_defaultedIn_deleted {
+public:
+  Small_absent_defaultedIn_deleted item;
+};
+
+Container_absent_defaultedIn_deleted Container_absent_defaultedIn_deleted_var; /* global var */
+
+template int cbv_container<Container_absent_defaultedIn_deleted> (Container_absent_defaultedIn_deleted arg);
+/*** C++ class Small_absent_defaultedOut_absent ***/
+class Small_absent_defaultedOut_absent {
+public:
+  Small_absent_defaultedOut_absent (void);
+  ~Small_absent_defaultedOut_absent (void);
+
+
+  int data[2];
+};
+
+Small_absent_defaultedOut_absent::Small_absent_defaultedOut_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_defaultedOut_absent::~Small_absent_defaultedOut_absent (void) = default;
+
+
+Small_absent_defaultedOut_absent Small_absent_defaultedOut_absent_var; /* global var */
+
+template int cbv<Small_absent_defaultedOut_absent> (Small_absent_defaultedOut_absent arg);
+/*** C++ class Large_absent_defaultedOut_absent ***/
+class Large_absent_defaultedOut_absent {
+public:
+  Large_absent_defaultedOut_absent (void);
+  ~Large_absent_defaultedOut_absent (void);
+
+
+  int data[150];
+};
+
+Large_absent_defaultedOut_absent::Large_absent_defaultedOut_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_defaultedOut_absent::~Large_absent_defaultedOut_absent (void) = default;
+
+
+Large_absent_defaultedOut_absent Large_absent_defaultedOut_absent_var; /* global var */
+
+template int cbv<Large_absent_defaultedOut_absent> (Large_absent_defaultedOut_absent arg);
+/*** Class derived from Small_absent_defaultedOut_absent ***/
+class Derived_absent_defaultedOut_absent : public Small_absent_defaultedOut_absent {
+public:
+};
+
+Derived_absent_defaultedOut_absent Derived_absent_defaultedOut_absent_var; /* global var */
+
+template int cbv<Derived_absent_defaultedOut_absent> (Derived_absent_defaultedOut_absent arg);
+/*** Class that contains Small_absent_defaultedOut_absent ***/
+class Container_absent_defaultedOut_absent {
+public:
+  Small_absent_defaultedOut_absent item;
+};
+
+Container_absent_defaultedOut_absent Container_absent_defaultedOut_absent_var; /* global var */
+
+template int cbv_container<Container_absent_defaultedOut_absent> (Container_absent_defaultedOut_absent arg);
+/*** C++ class Small_absent_defaultedOut_explicit ***/
+class Small_absent_defaultedOut_explicit {
+public:
+  Small_absent_defaultedOut_explicit (void);
+  ~Small_absent_defaultedOut_explicit (void);
+  Small_absent_defaultedOut_explicit (Small_absent_defaultedOut_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_absent_defaultedOut_explicit::Small_absent_defaultedOut_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_defaultedOut_explicit::~Small_absent_defaultedOut_explicit (void) = default;
+Small_absent_defaultedOut_explicit::Small_absent_defaultedOut_explicit (Small_absent_defaultedOut_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_absent_defaultedOut_explicit Small_absent_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Small_absent_defaultedOut_explicit> (Small_absent_defaultedOut_explicit arg);
+/*** C++ class Large_absent_defaultedOut_explicit ***/
+class Large_absent_defaultedOut_explicit {
+public:
+  Large_absent_defaultedOut_explicit (void);
+  ~Large_absent_defaultedOut_explicit (void);
+  Large_absent_defaultedOut_explicit (Large_absent_defaultedOut_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_absent_defaultedOut_explicit::Large_absent_defaultedOut_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_defaultedOut_explicit::~Large_absent_defaultedOut_explicit (void) = default;
+Large_absent_defaultedOut_explicit::Large_absent_defaultedOut_explicit (Large_absent_defaultedOut_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_absent_defaultedOut_explicit Large_absent_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Large_absent_defaultedOut_explicit> (Large_absent_defaultedOut_explicit arg);
+/*** Class derived from Small_absent_defaultedOut_explicit ***/
+class Derived_absent_defaultedOut_explicit : public Small_absent_defaultedOut_explicit {
+public:
+};
+
+Derived_absent_defaultedOut_explicit Derived_absent_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Derived_absent_defaultedOut_explicit> (Derived_absent_defaultedOut_explicit arg);
+/*** Class that contains Small_absent_defaultedOut_explicit ***/
+class Container_absent_defaultedOut_explicit {
+public:
+  Small_absent_defaultedOut_explicit item;
+};
+
+Container_absent_defaultedOut_explicit Container_absent_defaultedOut_explicit_var; /* global var */
+
+template int cbv_container<Container_absent_defaultedOut_explicit> (Container_absent_defaultedOut_explicit arg);
+/*** C++ class Small_absent_defaultedOut_defaultedIn ***/
+class Small_absent_defaultedOut_defaultedIn {
+public:
+  Small_absent_defaultedOut_defaultedIn (void);
+  ~Small_absent_defaultedOut_defaultedIn (void);
+  Small_absent_defaultedOut_defaultedIn (Small_absent_defaultedOut_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_absent_defaultedOut_defaultedIn::Small_absent_defaultedOut_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_defaultedOut_defaultedIn::~Small_absent_defaultedOut_defaultedIn (void) = default;
+
+
+Small_absent_defaultedOut_defaultedIn Small_absent_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Small_absent_defaultedOut_defaultedIn> (Small_absent_defaultedOut_defaultedIn arg);
+/*** C++ class Large_absent_defaultedOut_defaultedIn ***/
+class Large_absent_defaultedOut_defaultedIn {
+public:
+  Large_absent_defaultedOut_defaultedIn (void);
+  ~Large_absent_defaultedOut_defaultedIn (void);
+  Large_absent_defaultedOut_defaultedIn (Large_absent_defaultedOut_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_absent_defaultedOut_defaultedIn::Large_absent_defaultedOut_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_defaultedOut_defaultedIn::~Large_absent_defaultedOut_defaultedIn (void) = default;
+
+
+Large_absent_defaultedOut_defaultedIn Large_absent_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Large_absent_defaultedOut_defaultedIn> (Large_absent_defaultedOut_defaultedIn arg);
+/*** Class derived from Small_absent_defaultedOut_defaultedIn ***/
+class Derived_absent_defaultedOut_defaultedIn : public Small_absent_defaultedOut_defaultedIn {
+public:
+};
+
+Derived_absent_defaultedOut_defaultedIn Derived_absent_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Derived_absent_defaultedOut_defaultedIn> (Derived_absent_defaultedOut_defaultedIn arg);
+/*** Class that contains Small_absent_defaultedOut_defaultedIn ***/
+class Container_absent_defaultedOut_defaultedIn {
+public:
+  Small_absent_defaultedOut_defaultedIn item;
+};
+
+Container_absent_defaultedOut_defaultedIn Container_absent_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_absent_defaultedOut_defaultedIn> (Container_absent_defaultedOut_defaultedIn arg);
+/*** C++ class Small_absent_defaultedOut_defaultedOut ***/
+class Small_absent_defaultedOut_defaultedOut {
+public:
+  Small_absent_defaultedOut_defaultedOut (void);
+  ~Small_absent_defaultedOut_defaultedOut (void);
+  Small_absent_defaultedOut_defaultedOut (Small_absent_defaultedOut_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_absent_defaultedOut_defaultedOut::Small_absent_defaultedOut_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_defaultedOut_defaultedOut::~Small_absent_defaultedOut_defaultedOut (void) = default;
+Small_absent_defaultedOut_defaultedOut::Small_absent_defaultedOut_defaultedOut (Small_absent_defaultedOut_defaultedOut &&rhs) = default;
+
+
+Small_absent_defaultedOut_defaultedOut Small_absent_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Small_absent_defaultedOut_defaultedOut> (Small_absent_defaultedOut_defaultedOut arg);
+/*** C++ class Large_absent_defaultedOut_defaultedOut ***/
+class Large_absent_defaultedOut_defaultedOut {
+public:
+  Large_absent_defaultedOut_defaultedOut (void);
+  ~Large_absent_defaultedOut_defaultedOut (void);
+  Large_absent_defaultedOut_defaultedOut (Large_absent_defaultedOut_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_absent_defaultedOut_defaultedOut::Large_absent_defaultedOut_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_defaultedOut_defaultedOut::~Large_absent_defaultedOut_defaultedOut (void) = default;
+Large_absent_defaultedOut_defaultedOut::Large_absent_defaultedOut_defaultedOut (Large_absent_defaultedOut_defaultedOut &&rhs) = default;
+
+
+Large_absent_defaultedOut_defaultedOut Large_absent_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Large_absent_defaultedOut_defaultedOut> (Large_absent_defaultedOut_defaultedOut arg);
+/*** Class derived from Small_absent_defaultedOut_defaultedOut ***/
+class Derived_absent_defaultedOut_defaultedOut : public Small_absent_defaultedOut_defaultedOut {
+public:
+};
+
+Derived_absent_defaultedOut_defaultedOut Derived_absent_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Derived_absent_defaultedOut_defaultedOut> (Derived_absent_defaultedOut_defaultedOut arg);
+/*** Class that contains Small_absent_defaultedOut_defaultedOut ***/
+class Container_absent_defaultedOut_defaultedOut {
+public:
+  Small_absent_defaultedOut_defaultedOut item;
+};
+
+Container_absent_defaultedOut_defaultedOut Container_absent_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_absent_defaultedOut_defaultedOut> (Container_absent_defaultedOut_defaultedOut arg);
+/*** C++ class Small_absent_defaultedOut_deleted ***/
+class Small_absent_defaultedOut_deleted {
+public:
+  Small_absent_defaultedOut_deleted (void);
+  ~Small_absent_defaultedOut_deleted (void);
+  Small_absent_defaultedOut_deleted (Small_absent_defaultedOut_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_absent_defaultedOut_deleted::Small_absent_defaultedOut_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_absent_defaultedOut_deleted::~Small_absent_defaultedOut_deleted (void) = default;
+
+
+Small_absent_defaultedOut_deleted Small_absent_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Small_absent_defaultedOut_deleted> (Small_absent_defaultedOut_deleted arg);
+/*** C++ class Large_absent_defaultedOut_deleted ***/
+class Large_absent_defaultedOut_deleted {
+public:
+  Large_absent_defaultedOut_deleted (void);
+  ~Large_absent_defaultedOut_deleted (void);
+  Large_absent_defaultedOut_deleted (Large_absent_defaultedOut_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_absent_defaultedOut_deleted::Large_absent_defaultedOut_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_absent_defaultedOut_deleted::~Large_absent_defaultedOut_deleted (void) = default;
+
+
+Large_absent_defaultedOut_deleted Large_absent_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Large_absent_defaultedOut_deleted> (Large_absent_defaultedOut_deleted arg);
+/*** Class derived from Small_absent_defaultedOut_deleted ***/
+class Derived_absent_defaultedOut_deleted : public Small_absent_defaultedOut_deleted {
+public:
+};
+
+Derived_absent_defaultedOut_deleted Derived_absent_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Derived_absent_defaultedOut_deleted> (Derived_absent_defaultedOut_deleted arg);
+/*** Class that contains Small_absent_defaultedOut_deleted ***/
+class Container_absent_defaultedOut_deleted {
+public:
+  Small_absent_defaultedOut_deleted item;
+};
+
+Container_absent_defaultedOut_deleted Container_absent_defaultedOut_deleted_var; /* global var */
+
+template int cbv_container<Container_absent_defaultedOut_deleted> (Container_absent_defaultedOut_deleted arg);
+/*** C++ class Small_explicit_absent_absent ***/
+class Small_explicit_absent_absent {
+public:
+  Small_explicit_absent_absent (void);
+  Small_explicit_absent_absent (const Small_explicit_absent_absent &rhs);
+
+
+  int data[2];
+};
+
+Small_explicit_absent_absent::Small_explicit_absent_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_absent_absent::Small_explicit_absent_absent (const Small_explicit_absent_absent &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_absent_absent Small_explicit_absent_absent_var; /* global var */
+
+template int cbv<Small_explicit_absent_absent> (Small_explicit_absent_absent arg);
+/*** C++ class Large_explicit_absent_absent ***/
+class Large_explicit_absent_absent {
+public:
+  Large_explicit_absent_absent (void);
+  Large_explicit_absent_absent (const Large_explicit_absent_absent &rhs);
+
+
+  int data[150];
+};
+
+Large_explicit_absent_absent::Large_explicit_absent_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_absent_absent::Large_explicit_absent_absent (const Large_explicit_absent_absent &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_absent_absent Large_explicit_absent_absent_var; /* global var */
+
+template int cbv<Large_explicit_absent_absent> (Large_explicit_absent_absent arg);
+/*** Class derived from Small_explicit_absent_absent ***/
+class Derived_explicit_absent_absent : public Small_explicit_absent_absent {
+public:
+};
+
+Derived_explicit_absent_absent Derived_explicit_absent_absent_var; /* global var */
+
+template int cbv<Derived_explicit_absent_absent> (Derived_explicit_absent_absent arg);
+/*** Class that contains Small_explicit_absent_absent ***/
+class Container_explicit_absent_absent {
+public:
+  Small_explicit_absent_absent item;
+};
+
+Container_explicit_absent_absent Container_explicit_absent_absent_var; /* global var */
+
+template int cbv_container<Container_explicit_absent_absent> (Container_explicit_absent_absent arg);
+/*** C++ class Small_explicit_absent_explicit ***/
+class Small_explicit_absent_explicit {
+public:
+  Small_explicit_absent_explicit (void);
+  Small_explicit_absent_explicit (const Small_explicit_absent_explicit &rhs);
+  Small_explicit_absent_explicit (Small_explicit_absent_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_explicit_absent_explicit::Small_explicit_absent_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_absent_explicit::Small_explicit_absent_explicit (const Small_explicit_absent_explicit &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_absent_explicit::Small_explicit_absent_explicit (Small_explicit_absent_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_absent_explicit Small_explicit_absent_explicit_var; /* global var */
+
+template int cbv<Small_explicit_absent_explicit> (Small_explicit_absent_explicit arg);
+/*** C++ class Large_explicit_absent_explicit ***/
+class Large_explicit_absent_explicit {
+public:
+  Large_explicit_absent_explicit (void);
+  Large_explicit_absent_explicit (const Large_explicit_absent_explicit &rhs);
+  Large_explicit_absent_explicit (Large_explicit_absent_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_explicit_absent_explicit::Large_explicit_absent_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_absent_explicit::Large_explicit_absent_explicit (const Large_explicit_absent_explicit &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_absent_explicit::Large_explicit_absent_explicit (Large_explicit_absent_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_absent_explicit Large_explicit_absent_explicit_var; /* global var */
+
+template int cbv<Large_explicit_absent_explicit> (Large_explicit_absent_explicit arg);
+/*** Class derived from Small_explicit_absent_explicit ***/
+class Derived_explicit_absent_explicit : public Small_explicit_absent_explicit {
+public:
+};
+
+Derived_explicit_absent_explicit Derived_explicit_absent_explicit_var; /* global var */
+
+template int cbv<Derived_explicit_absent_explicit> (Derived_explicit_absent_explicit arg);
+/*** Class that contains Small_explicit_absent_explicit ***/
+class Container_explicit_absent_explicit {
+public:
+  Small_explicit_absent_explicit item;
+};
+
+Container_explicit_absent_explicit Container_explicit_absent_explicit_var; /* global var */
+
+template int cbv_container<Container_explicit_absent_explicit> (Container_explicit_absent_explicit arg);
+/*** C++ class Small_explicit_absent_defaultedIn ***/
+class Small_explicit_absent_defaultedIn {
+public:
+  Small_explicit_absent_defaultedIn (void);
+  Small_explicit_absent_defaultedIn (const Small_explicit_absent_defaultedIn &rhs);
+  Small_explicit_absent_defaultedIn (Small_explicit_absent_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_explicit_absent_defaultedIn::Small_explicit_absent_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_absent_defaultedIn::Small_explicit_absent_defaultedIn (const Small_explicit_absent_defaultedIn &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_absent_defaultedIn Small_explicit_absent_defaultedIn_var; /* global var */
+
+template int cbv<Small_explicit_absent_defaultedIn> (Small_explicit_absent_defaultedIn arg);
+/*** C++ class Large_explicit_absent_defaultedIn ***/
+class Large_explicit_absent_defaultedIn {
+public:
+  Large_explicit_absent_defaultedIn (void);
+  Large_explicit_absent_defaultedIn (const Large_explicit_absent_defaultedIn &rhs);
+  Large_explicit_absent_defaultedIn (Large_explicit_absent_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_explicit_absent_defaultedIn::Large_explicit_absent_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_absent_defaultedIn::Large_explicit_absent_defaultedIn (const Large_explicit_absent_defaultedIn &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_absent_defaultedIn Large_explicit_absent_defaultedIn_var; /* global var */
+
+template int cbv<Large_explicit_absent_defaultedIn> (Large_explicit_absent_defaultedIn arg);
+/*** Class derived from Small_explicit_absent_defaultedIn ***/
+class Derived_explicit_absent_defaultedIn : public Small_explicit_absent_defaultedIn {
+public:
+};
+
+Derived_explicit_absent_defaultedIn Derived_explicit_absent_defaultedIn_var; /* global var */
+
+template int cbv<Derived_explicit_absent_defaultedIn> (Derived_explicit_absent_defaultedIn arg);
+/*** Class that contains Small_explicit_absent_defaultedIn ***/
+class Container_explicit_absent_defaultedIn {
+public:
+  Small_explicit_absent_defaultedIn item;
+};
+
+Container_explicit_absent_defaultedIn Container_explicit_absent_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_explicit_absent_defaultedIn> (Container_explicit_absent_defaultedIn arg);
+/*** C++ class Small_explicit_absent_defaultedOut ***/
+class Small_explicit_absent_defaultedOut {
+public:
+  Small_explicit_absent_defaultedOut (void);
+  Small_explicit_absent_defaultedOut (const Small_explicit_absent_defaultedOut &rhs);
+  Small_explicit_absent_defaultedOut (Small_explicit_absent_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_explicit_absent_defaultedOut::Small_explicit_absent_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_absent_defaultedOut::Small_explicit_absent_defaultedOut (const Small_explicit_absent_defaultedOut &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_absent_defaultedOut::Small_explicit_absent_defaultedOut (Small_explicit_absent_defaultedOut &&rhs) = default;
+
+
+Small_explicit_absent_defaultedOut Small_explicit_absent_defaultedOut_var; /* global var */
+
+template int cbv<Small_explicit_absent_defaultedOut> (Small_explicit_absent_defaultedOut arg);
+/*** C++ class Large_explicit_absent_defaultedOut ***/
+class Large_explicit_absent_defaultedOut {
+public:
+  Large_explicit_absent_defaultedOut (void);
+  Large_explicit_absent_defaultedOut (const Large_explicit_absent_defaultedOut &rhs);
+  Large_explicit_absent_defaultedOut (Large_explicit_absent_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_explicit_absent_defaultedOut::Large_explicit_absent_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_absent_defaultedOut::Large_explicit_absent_defaultedOut (const Large_explicit_absent_defaultedOut &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_absent_defaultedOut::Large_explicit_absent_defaultedOut (Large_explicit_absent_defaultedOut &&rhs) = default;
+
+
+Large_explicit_absent_defaultedOut Large_explicit_absent_defaultedOut_var; /* global var */
+
+template int cbv<Large_explicit_absent_defaultedOut> (Large_explicit_absent_defaultedOut arg);
+/*** Class derived from Small_explicit_absent_defaultedOut ***/
+class Derived_explicit_absent_defaultedOut : public Small_explicit_absent_defaultedOut {
+public:
+};
+
+Derived_explicit_absent_defaultedOut Derived_explicit_absent_defaultedOut_var; /* global var */
+
+template int cbv<Derived_explicit_absent_defaultedOut> (Derived_explicit_absent_defaultedOut arg);
+/*** Class that contains Small_explicit_absent_defaultedOut ***/
+class Container_explicit_absent_defaultedOut {
+public:
+  Small_explicit_absent_defaultedOut item;
+};
+
+Container_explicit_absent_defaultedOut Container_explicit_absent_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_explicit_absent_defaultedOut> (Container_explicit_absent_defaultedOut arg);
+/*** C++ class Small_explicit_absent_deleted ***/
+class Small_explicit_absent_deleted {
+public:
+  Small_explicit_absent_deleted (void);
+  Small_explicit_absent_deleted (const Small_explicit_absent_deleted &rhs);
+  Small_explicit_absent_deleted (Small_explicit_absent_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_explicit_absent_deleted::Small_explicit_absent_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_absent_deleted::Small_explicit_absent_deleted (const Small_explicit_absent_deleted &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_absent_deleted Small_explicit_absent_deleted_var; /* global var */
+
+template int cbv<Small_explicit_absent_deleted> (Small_explicit_absent_deleted arg);
+/*** C++ class Large_explicit_absent_deleted ***/
+class Large_explicit_absent_deleted {
+public:
+  Large_explicit_absent_deleted (void);
+  Large_explicit_absent_deleted (const Large_explicit_absent_deleted &rhs);
+  Large_explicit_absent_deleted (Large_explicit_absent_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_explicit_absent_deleted::Large_explicit_absent_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_absent_deleted::Large_explicit_absent_deleted (const Large_explicit_absent_deleted &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_absent_deleted Large_explicit_absent_deleted_var; /* global var */
+
+template int cbv<Large_explicit_absent_deleted> (Large_explicit_absent_deleted arg);
+/*** Class derived from Small_explicit_absent_deleted ***/
+class Derived_explicit_absent_deleted : public Small_explicit_absent_deleted {
+public:
+};
+
+Derived_explicit_absent_deleted Derived_explicit_absent_deleted_var; /* global var */
+
+template int cbv<Derived_explicit_absent_deleted> (Derived_explicit_absent_deleted arg);
+/*** Class that contains Small_explicit_absent_deleted ***/
+class Container_explicit_absent_deleted {
+public:
+  Small_explicit_absent_deleted item;
+};
+
+Container_explicit_absent_deleted Container_explicit_absent_deleted_var; /* global var */
+
+template int cbv_container<Container_explicit_absent_deleted> (Container_explicit_absent_deleted arg);
+/*** C++ class Small_explicit_explicit_absent ***/
+class Small_explicit_explicit_absent {
+public:
+  Small_explicit_explicit_absent (void);
+  Small_explicit_explicit_absent (const Small_explicit_explicit_absent &rhs);
+  ~Small_explicit_explicit_absent (void);
+
+
+  int data[2];
+};
+
+Small_explicit_explicit_absent::Small_explicit_explicit_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_explicit_absent::Small_explicit_explicit_absent (const Small_explicit_explicit_absent &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_explicit_absent::~Small_explicit_explicit_absent (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_explicit_absent Small_explicit_explicit_absent_var; /* global var */
+
+template int cbv<Small_explicit_explicit_absent> (Small_explicit_explicit_absent arg);
+/*** C++ class Large_explicit_explicit_absent ***/
+class Large_explicit_explicit_absent {
+public:
+  Large_explicit_explicit_absent (void);
+  Large_explicit_explicit_absent (const Large_explicit_explicit_absent &rhs);
+  ~Large_explicit_explicit_absent (void);
+
+
+  int data[150];
+};
+
+Large_explicit_explicit_absent::Large_explicit_explicit_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_explicit_absent::Large_explicit_explicit_absent (const Large_explicit_explicit_absent &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_explicit_absent::~Large_explicit_explicit_absent (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_explicit_absent Large_explicit_explicit_absent_var; /* global var */
+
+template int cbv<Large_explicit_explicit_absent> (Large_explicit_explicit_absent arg);
+/*** Class derived from Small_explicit_explicit_absent ***/
+class Derived_explicit_explicit_absent : public Small_explicit_explicit_absent {
+public:
+};
+
+Derived_explicit_explicit_absent Derived_explicit_explicit_absent_var; /* global var */
+
+template int cbv<Derived_explicit_explicit_absent> (Derived_explicit_explicit_absent arg);
+/*** Class that contains Small_explicit_explicit_absent ***/
+class Container_explicit_explicit_absent {
+public:
+  Small_explicit_explicit_absent item;
+};
+
+Container_explicit_explicit_absent Container_explicit_explicit_absent_var; /* global var */
+
+template int cbv_container<Container_explicit_explicit_absent> (Container_explicit_explicit_absent arg);
+/*** C++ class Small_explicit_explicit_explicit ***/
+class Small_explicit_explicit_explicit {
+public:
+  Small_explicit_explicit_explicit (void);
+  Small_explicit_explicit_explicit (const Small_explicit_explicit_explicit &rhs);
+  ~Small_explicit_explicit_explicit (void);
+  Small_explicit_explicit_explicit (Small_explicit_explicit_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_explicit_explicit_explicit::Small_explicit_explicit_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_explicit_explicit::Small_explicit_explicit_explicit (const Small_explicit_explicit_explicit &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_explicit_explicit::~Small_explicit_explicit_explicit (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_explicit_explicit::Small_explicit_explicit_explicit (Small_explicit_explicit_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_explicit_explicit Small_explicit_explicit_explicit_var; /* global var */
+
+template int cbv<Small_explicit_explicit_explicit> (Small_explicit_explicit_explicit arg);
+/*** C++ class Large_explicit_explicit_explicit ***/
+class Large_explicit_explicit_explicit {
+public:
+  Large_explicit_explicit_explicit (void);
+  Large_explicit_explicit_explicit (const Large_explicit_explicit_explicit &rhs);
+  ~Large_explicit_explicit_explicit (void);
+  Large_explicit_explicit_explicit (Large_explicit_explicit_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_explicit_explicit_explicit::Large_explicit_explicit_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_explicit_explicit::Large_explicit_explicit_explicit (const Large_explicit_explicit_explicit &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_explicit_explicit::~Large_explicit_explicit_explicit (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_explicit_explicit::Large_explicit_explicit_explicit (Large_explicit_explicit_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_explicit_explicit Large_explicit_explicit_explicit_var; /* global var */
+
+template int cbv<Large_explicit_explicit_explicit> (Large_explicit_explicit_explicit arg);
+/*** Class derived from Small_explicit_explicit_explicit ***/
+class Derived_explicit_explicit_explicit : public Small_explicit_explicit_explicit {
+public:
+};
+
+Derived_explicit_explicit_explicit Derived_explicit_explicit_explicit_var; /* global var */
+
+template int cbv<Derived_explicit_explicit_explicit> (Derived_explicit_explicit_explicit arg);
+/*** Class that contains Small_explicit_explicit_explicit ***/
+class Container_explicit_explicit_explicit {
+public:
+  Small_explicit_explicit_explicit item;
+};
+
+Container_explicit_explicit_explicit Container_explicit_explicit_explicit_var; /* global var */
+
+template int cbv_container<Container_explicit_explicit_explicit> (Container_explicit_explicit_explicit arg);
+/*** C++ class Small_explicit_explicit_defaultedIn ***/
+class Small_explicit_explicit_defaultedIn {
+public:
+  Small_explicit_explicit_defaultedIn (void);
+  Small_explicit_explicit_defaultedIn (const Small_explicit_explicit_defaultedIn &rhs);
+  ~Small_explicit_explicit_defaultedIn (void);
+  Small_explicit_explicit_defaultedIn (Small_explicit_explicit_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_explicit_explicit_defaultedIn::Small_explicit_explicit_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_explicit_defaultedIn::Small_explicit_explicit_defaultedIn (const Small_explicit_explicit_defaultedIn &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_explicit_defaultedIn::~Small_explicit_explicit_defaultedIn (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_explicit_defaultedIn Small_explicit_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Small_explicit_explicit_defaultedIn> (Small_explicit_explicit_defaultedIn arg);
+/*** C++ class Large_explicit_explicit_defaultedIn ***/
+class Large_explicit_explicit_defaultedIn {
+public:
+  Large_explicit_explicit_defaultedIn (void);
+  Large_explicit_explicit_defaultedIn (const Large_explicit_explicit_defaultedIn &rhs);
+  ~Large_explicit_explicit_defaultedIn (void);
+  Large_explicit_explicit_defaultedIn (Large_explicit_explicit_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_explicit_explicit_defaultedIn::Large_explicit_explicit_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_explicit_defaultedIn::Large_explicit_explicit_defaultedIn (const Large_explicit_explicit_defaultedIn &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_explicit_defaultedIn::~Large_explicit_explicit_defaultedIn (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_explicit_defaultedIn Large_explicit_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Large_explicit_explicit_defaultedIn> (Large_explicit_explicit_defaultedIn arg);
+/*** Class derived from Small_explicit_explicit_defaultedIn ***/
+class Derived_explicit_explicit_defaultedIn : public Small_explicit_explicit_defaultedIn {
+public:
+};
+
+Derived_explicit_explicit_defaultedIn Derived_explicit_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Derived_explicit_explicit_defaultedIn> (Derived_explicit_explicit_defaultedIn arg);
+/*** Class that contains Small_explicit_explicit_defaultedIn ***/
+class Container_explicit_explicit_defaultedIn {
+public:
+  Small_explicit_explicit_defaultedIn item;
+};
+
+Container_explicit_explicit_defaultedIn Container_explicit_explicit_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_explicit_explicit_defaultedIn> (Container_explicit_explicit_defaultedIn arg);
+/*** C++ class Small_explicit_explicit_defaultedOut ***/
+class Small_explicit_explicit_defaultedOut {
+public:
+  Small_explicit_explicit_defaultedOut (void);
+  Small_explicit_explicit_defaultedOut (const Small_explicit_explicit_defaultedOut &rhs);
+  ~Small_explicit_explicit_defaultedOut (void);
+  Small_explicit_explicit_defaultedOut (Small_explicit_explicit_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_explicit_explicit_defaultedOut::Small_explicit_explicit_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_explicit_defaultedOut::Small_explicit_explicit_defaultedOut (const Small_explicit_explicit_defaultedOut &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_explicit_defaultedOut::~Small_explicit_explicit_defaultedOut (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_explicit_defaultedOut::Small_explicit_explicit_defaultedOut (Small_explicit_explicit_defaultedOut &&rhs) = default;
+
+
+Small_explicit_explicit_defaultedOut Small_explicit_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Small_explicit_explicit_defaultedOut> (Small_explicit_explicit_defaultedOut arg);
+/*** C++ class Large_explicit_explicit_defaultedOut ***/
+class Large_explicit_explicit_defaultedOut {
+public:
+  Large_explicit_explicit_defaultedOut (void);
+  Large_explicit_explicit_defaultedOut (const Large_explicit_explicit_defaultedOut &rhs);
+  ~Large_explicit_explicit_defaultedOut (void);
+  Large_explicit_explicit_defaultedOut (Large_explicit_explicit_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_explicit_explicit_defaultedOut::Large_explicit_explicit_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_explicit_defaultedOut::Large_explicit_explicit_defaultedOut (const Large_explicit_explicit_defaultedOut &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_explicit_defaultedOut::~Large_explicit_explicit_defaultedOut (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_explicit_defaultedOut::Large_explicit_explicit_defaultedOut (Large_explicit_explicit_defaultedOut &&rhs) = default;
+
+
+Large_explicit_explicit_defaultedOut Large_explicit_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Large_explicit_explicit_defaultedOut> (Large_explicit_explicit_defaultedOut arg);
+/*** Class derived from Small_explicit_explicit_defaultedOut ***/
+class Derived_explicit_explicit_defaultedOut : public Small_explicit_explicit_defaultedOut {
+public:
+};
+
+Derived_explicit_explicit_defaultedOut Derived_explicit_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Derived_explicit_explicit_defaultedOut> (Derived_explicit_explicit_defaultedOut arg);
+/*** Class that contains Small_explicit_explicit_defaultedOut ***/
+class Container_explicit_explicit_defaultedOut {
+public:
+  Small_explicit_explicit_defaultedOut item;
+};
+
+Container_explicit_explicit_defaultedOut Container_explicit_explicit_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_explicit_explicit_defaultedOut> (Container_explicit_explicit_defaultedOut arg);
+/*** C++ class Small_explicit_explicit_deleted ***/
+class Small_explicit_explicit_deleted {
+public:
+  Small_explicit_explicit_deleted (void);
+  Small_explicit_explicit_deleted (const Small_explicit_explicit_deleted &rhs);
+  ~Small_explicit_explicit_deleted (void);
+  Small_explicit_explicit_deleted (Small_explicit_explicit_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_explicit_explicit_deleted::Small_explicit_explicit_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_explicit_deleted::Small_explicit_explicit_deleted (const Small_explicit_explicit_deleted &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_explicit_deleted::~Small_explicit_explicit_deleted (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_explicit_deleted Small_explicit_explicit_deleted_var; /* global var */
+
+template int cbv<Small_explicit_explicit_deleted> (Small_explicit_explicit_deleted arg);
+/*** C++ class Large_explicit_explicit_deleted ***/
+class Large_explicit_explicit_deleted {
+public:
+  Large_explicit_explicit_deleted (void);
+  Large_explicit_explicit_deleted (const Large_explicit_explicit_deleted &rhs);
+  ~Large_explicit_explicit_deleted (void);
+  Large_explicit_explicit_deleted (Large_explicit_explicit_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_explicit_explicit_deleted::Large_explicit_explicit_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_explicit_deleted::Large_explicit_explicit_deleted (const Large_explicit_explicit_deleted &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_explicit_deleted::~Large_explicit_explicit_deleted (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_explicit_deleted Large_explicit_explicit_deleted_var; /* global var */
+
+template int cbv<Large_explicit_explicit_deleted> (Large_explicit_explicit_deleted arg);
+/*** Class derived from Small_explicit_explicit_deleted ***/
+class Derived_explicit_explicit_deleted : public Small_explicit_explicit_deleted {
+public:
+};
+
+Derived_explicit_explicit_deleted Derived_explicit_explicit_deleted_var; /* global var */
+
+template int cbv<Derived_explicit_explicit_deleted> (Derived_explicit_explicit_deleted arg);
+/*** Class that contains Small_explicit_explicit_deleted ***/
+class Container_explicit_explicit_deleted {
+public:
+  Small_explicit_explicit_deleted item;
+};
+
+Container_explicit_explicit_deleted Container_explicit_explicit_deleted_var; /* global var */
+
+template int cbv_container<Container_explicit_explicit_deleted> (Container_explicit_explicit_deleted arg);
+/*** C++ class Small_explicit_defaultedIn_absent ***/
+class Small_explicit_defaultedIn_absent {
+public:
+  Small_explicit_defaultedIn_absent (void);
+  Small_explicit_defaultedIn_absent (const Small_explicit_defaultedIn_absent &rhs);
+  ~Small_explicit_defaultedIn_absent (void) = default;
+
+
+  int data[2];
+};
+
+Small_explicit_defaultedIn_absent::Small_explicit_defaultedIn_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_defaultedIn_absent::Small_explicit_defaultedIn_absent (const Small_explicit_defaultedIn_absent &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_defaultedIn_absent Small_explicit_defaultedIn_absent_var; /* global var */
+
+template int cbv<Small_explicit_defaultedIn_absent> (Small_explicit_defaultedIn_absent arg);
+/*** C++ class Large_explicit_defaultedIn_absent ***/
+class Large_explicit_defaultedIn_absent {
+public:
+  Large_explicit_defaultedIn_absent (void);
+  Large_explicit_defaultedIn_absent (const Large_explicit_defaultedIn_absent &rhs);
+  ~Large_explicit_defaultedIn_absent (void) = default;
+
+
+  int data[150];
+};
+
+Large_explicit_defaultedIn_absent::Large_explicit_defaultedIn_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_defaultedIn_absent::Large_explicit_defaultedIn_absent (const Large_explicit_defaultedIn_absent &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_defaultedIn_absent Large_explicit_defaultedIn_absent_var; /* global var */
+
+template int cbv<Large_explicit_defaultedIn_absent> (Large_explicit_defaultedIn_absent arg);
+/*** Class derived from Small_explicit_defaultedIn_absent ***/
+class Derived_explicit_defaultedIn_absent : public Small_explicit_defaultedIn_absent {
+public:
+};
+
+Derived_explicit_defaultedIn_absent Derived_explicit_defaultedIn_absent_var; /* global var */
+
+template int cbv<Derived_explicit_defaultedIn_absent> (Derived_explicit_defaultedIn_absent arg);
+/*** Class that contains Small_explicit_defaultedIn_absent ***/
+class Container_explicit_defaultedIn_absent {
+public:
+  Small_explicit_defaultedIn_absent item;
+};
+
+Container_explicit_defaultedIn_absent Container_explicit_defaultedIn_absent_var; /* global var */
+
+template int cbv_container<Container_explicit_defaultedIn_absent> (Container_explicit_defaultedIn_absent arg);
+/*** C++ class Small_explicit_defaultedIn_explicit ***/
+class Small_explicit_defaultedIn_explicit {
+public:
+  Small_explicit_defaultedIn_explicit (void);
+  Small_explicit_defaultedIn_explicit (const Small_explicit_defaultedIn_explicit &rhs);
+  ~Small_explicit_defaultedIn_explicit (void) = default;
+  Small_explicit_defaultedIn_explicit (Small_explicit_defaultedIn_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_explicit_defaultedIn_explicit::Small_explicit_defaultedIn_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_defaultedIn_explicit::Small_explicit_defaultedIn_explicit (const Small_explicit_defaultedIn_explicit &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_defaultedIn_explicit::Small_explicit_defaultedIn_explicit (Small_explicit_defaultedIn_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_defaultedIn_explicit Small_explicit_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Small_explicit_defaultedIn_explicit> (Small_explicit_defaultedIn_explicit arg);
+/*** C++ class Large_explicit_defaultedIn_explicit ***/
+class Large_explicit_defaultedIn_explicit {
+public:
+  Large_explicit_defaultedIn_explicit (void);
+  Large_explicit_defaultedIn_explicit (const Large_explicit_defaultedIn_explicit &rhs);
+  ~Large_explicit_defaultedIn_explicit (void) = default;
+  Large_explicit_defaultedIn_explicit (Large_explicit_defaultedIn_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_explicit_defaultedIn_explicit::Large_explicit_defaultedIn_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_defaultedIn_explicit::Large_explicit_defaultedIn_explicit (const Large_explicit_defaultedIn_explicit &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_defaultedIn_explicit::Large_explicit_defaultedIn_explicit (Large_explicit_defaultedIn_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_defaultedIn_explicit Large_explicit_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Large_explicit_defaultedIn_explicit> (Large_explicit_defaultedIn_explicit arg);
+/*** Class derived from Small_explicit_defaultedIn_explicit ***/
+class Derived_explicit_defaultedIn_explicit : public Small_explicit_defaultedIn_explicit {
+public:
+};
+
+Derived_explicit_defaultedIn_explicit Derived_explicit_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Derived_explicit_defaultedIn_explicit> (Derived_explicit_defaultedIn_explicit arg);
+/*** Class that contains Small_explicit_defaultedIn_explicit ***/
+class Container_explicit_defaultedIn_explicit {
+public:
+  Small_explicit_defaultedIn_explicit item;
+};
+
+Container_explicit_defaultedIn_explicit Container_explicit_defaultedIn_explicit_var; /* global var */
+
+template int cbv_container<Container_explicit_defaultedIn_explicit> (Container_explicit_defaultedIn_explicit arg);
+/*** C++ class Small_explicit_defaultedIn_defaultedIn ***/
+class Small_explicit_defaultedIn_defaultedIn {
+public:
+  Small_explicit_defaultedIn_defaultedIn (void);
+  Small_explicit_defaultedIn_defaultedIn (const Small_explicit_defaultedIn_defaultedIn &rhs);
+  ~Small_explicit_defaultedIn_defaultedIn (void) = default;
+  Small_explicit_defaultedIn_defaultedIn (Small_explicit_defaultedIn_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_explicit_defaultedIn_defaultedIn::Small_explicit_defaultedIn_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_defaultedIn_defaultedIn::Small_explicit_defaultedIn_defaultedIn (const Small_explicit_defaultedIn_defaultedIn &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_defaultedIn_defaultedIn Small_explicit_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Small_explicit_defaultedIn_defaultedIn> (Small_explicit_defaultedIn_defaultedIn arg);
+/*** C++ class Large_explicit_defaultedIn_defaultedIn ***/
+class Large_explicit_defaultedIn_defaultedIn {
+public:
+  Large_explicit_defaultedIn_defaultedIn (void);
+  Large_explicit_defaultedIn_defaultedIn (const Large_explicit_defaultedIn_defaultedIn &rhs);
+  ~Large_explicit_defaultedIn_defaultedIn (void) = default;
+  Large_explicit_defaultedIn_defaultedIn (Large_explicit_defaultedIn_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_explicit_defaultedIn_defaultedIn::Large_explicit_defaultedIn_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_defaultedIn_defaultedIn::Large_explicit_defaultedIn_defaultedIn (const Large_explicit_defaultedIn_defaultedIn &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_defaultedIn_defaultedIn Large_explicit_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Large_explicit_defaultedIn_defaultedIn> (Large_explicit_defaultedIn_defaultedIn arg);
+/*** Class derived from Small_explicit_defaultedIn_defaultedIn ***/
+class Derived_explicit_defaultedIn_defaultedIn : public Small_explicit_defaultedIn_defaultedIn {
+public:
+};
+
+Derived_explicit_defaultedIn_defaultedIn Derived_explicit_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Derived_explicit_defaultedIn_defaultedIn> (Derived_explicit_defaultedIn_defaultedIn arg);
+/*** Class that contains Small_explicit_defaultedIn_defaultedIn ***/
+class Container_explicit_defaultedIn_defaultedIn {
+public:
+  Small_explicit_defaultedIn_defaultedIn item;
+};
+
+Container_explicit_defaultedIn_defaultedIn Container_explicit_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_explicit_defaultedIn_defaultedIn> (Container_explicit_defaultedIn_defaultedIn arg);
+/*** C++ class Small_explicit_defaultedIn_defaultedOut ***/
+class Small_explicit_defaultedIn_defaultedOut {
+public:
+  Small_explicit_defaultedIn_defaultedOut (void);
+  Small_explicit_defaultedIn_defaultedOut (const Small_explicit_defaultedIn_defaultedOut &rhs);
+  ~Small_explicit_defaultedIn_defaultedOut (void) = default;
+  Small_explicit_defaultedIn_defaultedOut (Small_explicit_defaultedIn_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_explicit_defaultedIn_defaultedOut::Small_explicit_defaultedIn_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_defaultedIn_defaultedOut::Small_explicit_defaultedIn_defaultedOut (const Small_explicit_defaultedIn_defaultedOut &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_defaultedIn_defaultedOut::Small_explicit_defaultedIn_defaultedOut (Small_explicit_defaultedIn_defaultedOut &&rhs) = default;
+
+
+Small_explicit_defaultedIn_defaultedOut Small_explicit_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Small_explicit_defaultedIn_defaultedOut> (Small_explicit_defaultedIn_defaultedOut arg);
+/*** C++ class Large_explicit_defaultedIn_defaultedOut ***/
+class Large_explicit_defaultedIn_defaultedOut {
+public:
+  Large_explicit_defaultedIn_defaultedOut (void);
+  Large_explicit_defaultedIn_defaultedOut (const Large_explicit_defaultedIn_defaultedOut &rhs);
+  ~Large_explicit_defaultedIn_defaultedOut (void) = default;
+  Large_explicit_defaultedIn_defaultedOut (Large_explicit_defaultedIn_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_explicit_defaultedIn_defaultedOut::Large_explicit_defaultedIn_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_defaultedIn_defaultedOut::Large_explicit_defaultedIn_defaultedOut (const Large_explicit_defaultedIn_defaultedOut &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_defaultedIn_defaultedOut::Large_explicit_defaultedIn_defaultedOut (Large_explicit_defaultedIn_defaultedOut &&rhs) = default;
+
+
+Large_explicit_defaultedIn_defaultedOut Large_explicit_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Large_explicit_defaultedIn_defaultedOut> (Large_explicit_defaultedIn_defaultedOut arg);
+/*** Class derived from Small_explicit_defaultedIn_defaultedOut ***/
+class Derived_explicit_defaultedIn_defaultedOut : public Small_explicit_defaultedIn_defaultedOut {
+public:
+};
+
+Derived_explicit_defaultedIn_defaultedOut Derived_explicit_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Derived_explicit_defaultedIn_defaultedOut> (Derived_explicit_defaultedIn_defaultedOut arg);
+/*** Class that contains Small_explicit_defaultedIn_defaultedOut ***/
+class Container_explicit_defaultedIn_defaultedOut {
+public:
+  Small_explicit_defaultedIn_defaultedOut item;
+};
+
+Container_explicit_defaultedIn_defaultedOut Container_explicit_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_explicit_defaultedIn_defaultedOut> (Container_explicit_defaultedIn_defaultedOut arg);
+/*** C++ class Small_explicit_defaultedIn_deleted ***/
+class Small_explicit_defaultedIn_deleted {
+public:
+  Small_explicit_defaultedIn_deleted (void);
+  Small_explicit_defaultedIn_deleted (const Small_explicit_defaultedIn_deleted &rhs);
+  ~Small_explicit_defaultedIn_deleted (void) = default;
+  Small_explicit_defaultedIn_deleted (Small_explicit_defaultedIn_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_explicit_defaultedIn_deleted::Small_explicit_defaultedIn_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_defaultedIn_deleted::Small_explicit_defaultedIn_deleted (const Small_explicit_defaultedIn_deleted &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_defaultedIn_deleted Small_explicit_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Small_explicit_defaultedIn_deleted> (Small_explicit_defaultedIn_deleted arg);
+/*** C++ class Large_explicit_defaultedIn_deleted ***/
+class Large_explicit_defaultedIn_deleted {
+public:
+  Large_explicit_defaultedIn_deleted (void);
+  Large_explicit_defaultedIn_deleted (const Large_explicit_defaultedIn_deleted &rhs);
+  ~Large_explicit_defaultedIn_deleted (void) = default;
+  Large_explicit_defaultedIn_deleted (Large_explicit_defaultedIn_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_explicit_defaultedIn_deleted::Large_explicit_defaultedIn_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_defaultedIn_deleted::Large_explicit_defaultedIn_deleted (const Large_explicit_defaultedIn_deleted &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_defaultedIn_deleted Large_explicit_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Large_explicit_defaultedIn_deleted> (Large_explicit_defaultedIn_deleted arg);
+/*** Class derived from Small_explicit_defaultedIn_deleted ***/
+class Derived_explicit_defaultedIn_deleted : public Small_explicit_defaultedIn_deleted {
+public:
+};
+
+Derived_explicit_defaultedIn_deleted Derived_explicit_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Derived_explicit_defaultedIn_deleted> (Derived_explicit_defaultedIn_deleted arg);
+/*** Class that contains Small_explicit_defaultedIn_deleted ***/
+class Container_explicit_defaultedIn_deleted {
+public:
+  Small_explicit_defaultedIn_deleted item;
+};
+
+Container_explicit_defaultedIn_deleted Container_explicit_defaultedIn_deleted_var; /* global var */
+
+template int cbv_container<Container_explicit_defaultedIn_deleted> (Container_explicit_defaultedIn_deleted arg);
+/*** C++ class Small_explicit_defaultedOut_absent ***/
+class Small_explicit_defaultedOut_absent {
+public:
+  Small_explicit_defaultedOut_absent (void);
+  Small_explicit_defaultedOut_absent (const Small_explicit_defaultedOut_absent &rhs);
+  ~Small_explicit_defaultedOut_absent (void);
+
+
+  int data[2];
+};
+
+Small_explicit_defaultedOut_absent::Small_explicit_defaultedOut_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_defaultedOut_absent::Small_explicit_defaultedOut_absent (const Small_explicit_defaultedOut_absent &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_defaultedOut_absent::~Small_explicit_defaultedOut_absent (void) = default;
+
+
+Small_explicit_defaultedOut_absent Small_explicit_defaultedOut_absent_var; /* global var */
+
+template int cbv<Small_explicit_defaultedOut_absent> (Small_explicit_defaultedOut_absent arg);
+/*** C++ class Large_explicit_defaultedOut_absent ***/
+class Large_explicit_defaultedOut_absent {
+public:
+  Large_explicit_defaultedOut_absent (void);
+  Large_explicit_defaultedOut_absent (const Large_explicit_defaultedOut_absent &rhs);
+  ~Large_explicit_defaultedOut_absent (void);
+
+
+  int data[150];
+};
+
+Large_explicit_defaultedOut_absent::Large_explicit_defaultedOut_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_defaultedOut_absent::Large_explicit_defaultedOut_absent (const Large_explicit_defaultedOut_absent &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_defaultedOut_absent::~Large_explicit_defaultedOut_absent (void) = default;
+
+
+Large_explicit_defaultedOut_absent Large_explicit_defaultedOut_absent_var; /* global var */
+
+template int cbv<Large_explicit_defaultedOut_absent> (Large_explicit_defaultedOut_absent arg);
+/*** Class derived from Small_explicit_defaultedOut_absent ***/
+class Derived_explicit_defaultedOut_absent : public Small_explicit_defaultedOut_absent {
+public:
+};
+
+Derived_explicit_defaultedOut_absent Derived_explicit_defaultedOut_absent_var; /* global var */
+
+template int cbv<Derived_explicit_defaultedOut_absent> (Derived_explicit_defaultedOut_absent arg);
+/*** Class that contains Small_explicit_defaultedOut_absent ***/
+class Container_explicit_defaultedOut_absent {
+public:
+  Small_explicit_defaultedOut_absent item;
+};
+
+Container_explicit_defaultedOut_absent Container_explicit_defaultedOut_absent_var; /* global var */
+
+template int cbv_container<Container_explicit_defaultedOut_absent> (Container_explicit_defaultedOut_absent arg);
+/*** C++ class Small_explicit_defaultedOut_explicit ***/
+class Small_explicit_defaultedOut_explicit {
+public:
+  Small_explicit_defaultedOut_explicit (void);
+  Small_explicit_defaultedOut_explicit (const Small_explicit_defaultedOut_explicit &rhs);
+  ~Small_explicit_defaultedOut_explicit (void);
+  Small_explicit_defaultedOut_explicit (Small_explicit_defaultedOut_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_explicit_defaultedOut_explicit::Small_explicit_defaultedOut_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_defaultedOut_explicit::Small_explicit_defaultedOut_explicit (const Small_explicit_defaultedOut_explicit &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_defaultedOut_explicit::~Small_explicit_defaultedOut_explicit (void) = default;
+Small_explicit_defaultedOut_explicit::Small_explicit_defaultedOut_explicit (Small_explicit_defaultedOut_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_explicit_defaultedOut_explicit Small_explicit_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Small_explicit_defaultedOut_explicit> (Small_explicit_defaultedOut_explicit arg);
+/*** C++ class Large_explicit_defaultedOut_explicit ***/
+class Large_explicit_defaultedOut_explicit {
+public:
+  Large_explicit_defaultedOut_explicit (void);
+  Large_explicit_defaultedOut_explicit (const Large_explicit_defaultedOut_explicit &rhs);
+  ~Large_explicit_defaultedOut_explicit (void);
+  Large_explicit_defaultedOut_explicit (Large_explicit_defaultedOut_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_explicit_defaultedOut_explicit::Large_explicit_defaultedOut_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_defaultedOut_explicit::Large_explicit_defaultedOut_explicit (const Large_explicit_defaultedOut_explicit &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_defaultedOut_explicit::~Large_explicit_defaultedOut_explicit (void) = default;
+Large_explicit_defaultedOut_explicit::Large_explicit_defaultedOut_explicit (Large_explicit_defaultedOut_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_explicit_defaultedOut_explicit Large_explicit_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Large_explicit_defaultedOut_explicit> (Large_explicit_defaultedOut_explicit arg);
+/*** Class derived from Small_explicit_defaultedOut_explicit ***/
+class Derived_explicit_defaultedOut_explicit : public Small_explicit_defaultedOut_explicit {
+public:
+};
+
+Derived_explicit_defaultedOut_explicit Derived_explicit_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Derived_explicit_defaultedOut_explicit> (Derived_explicit_defaultedOut_explicit arg);
+/*** Class that contains Small_explicit_defaultedOut_explicit ***/
+class Container_explicit_defaultedOut_explicit {
+public:
+  Small_explicit_defaultedOut_explicit item;
+};
+
+Container_explicit_defaultedOut_explicit Container_explicit_defaultedOut_explicit_var; /* global var */
+
+template int cbv_container<Container_explicit_defaultedOut_explicit> (Container_explicit_defaultedOut_explicit arg);
+/*** C++ class Small_explicit_defaultedOut_defaultedIn ***/
+class Small_explicit_defaultedOut_defaultedIn {
+public:
+  Small_explicit_defaultedOut_defaultedIn (void);
+  Small_explicit_defaultedOut_defaultedIn (const Small_explicit_defaultedOut_defaultedIn &rhs);
+  ~Small_explicit_defaultedOut_defaultedIn (void);
+  Small_explicit_defaultedOut_defaultedIn (Small_explicit_defaultedOut_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_explicit_defaultedOut_defaultedIn::Small_explicit_defaultedOut_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_defaultedOut_defaultedIn::Small_explicit_defaultedOut_defaultedIn (const Small_explicit_defaultedOut_defaultedIn &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_defaultedOut_defaultedIn::~Small_explicit_defaultedOut_defaultedIn (void) = default;
+
+
+Small_explicit_defaultedOut_defaultedIn Small_explicit_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Small_explicit_defaultedOut_defaultedIn> (Small_explicit_defaultedOut_defaultedIn arg);
+/*** C++ class Large_explicit_defaultedOut_defaultedIn ***/
+class Large_explicit_defaultedOut_defaultedIn {
+public:
+  Large_explicit_defaultedOut_defaultedIn (void);
+  Large_explicit_defaultedOut_defaultedIn (const Large_explicit_defaultedOut_defaultedIn &rhs);
+  ~Large_explicit_defaultedOut_defaultedIn (void);
+  Large_explicit_defaultedOut_defaultedIn (Large_explicit_defaultedOut_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_explicit_defaultedOut_defaultedIn::Large_explicit_defaultedOut_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_defaultedOut_defaultedIn::Large_explicit_defaultedOut_defaultedIn (const Large_explicit_defaultedOut_defaultedIn &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_defaultedOut_defaultedIn::~Large_explicit_defaultedOut_defaultedIn (void) = default;
+
+
+Large_explicit_defaultedOut_defaultedIn Large_explicit_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Large_explicit_defaultedOut_defaultedIn> (Large_explicit_defaultedOut_defaultedIn arg);
+/*** Class derived from Small_explicit_defaultedOut_defaultedIn ***/
+class Derived_explicit_defaultedOut_defaultedIn : public Small_explicit_defaultedOut_defaultedIn {
+public:
+};
+
+Derived_explicit_defaultedOut_defaultedIn Derived_explicit_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Derived_explicit_defaultedOut_defaultedIn> (Derived_explicit_defaultedOut_defaultedIn arg);
+/*** Class that contains Small_explicit_defaultedOut_defaultedIn ***/
+class Container_explicit_defaultedOut_defaultedIn {
+public:
+  Small_explicit_defaultedOut_defaultedIn item;
+};
+
+Container_explicit_defaultedOut_defaultedIn Container_explicit_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_explicit_defaultedOut_defaultedIn> (Container_explicit_defaultedOut_defaultedIn arg);
+/*** C++ class Small_explicit_defaultedOut_defaultedOut ***/
+class Small_explicit_defaultedOut_defaultedOut {
+public:
+  Small_explicit_defaultedOut_defaultedOut (void);
+  Small_explicit_defaultedOut_defaultedOut (const Small_explicit_defaultedOut_defaultedOut &rhs);
+  ~Small_explicit_defaultedOut_defaultedOut (void);
+  Small_explicit_defaultedOut_defaultedOut (Small_explicit_defaultedOut_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_explicit_defaultedOut_defaultedOut::Small_explicit_defaultedOut_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_defaultedOut_defaultedOut::Small_explicit_defaultedOut_defaultedOut (const Small_explicit_defaultedOut_defaultedOut &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_defaultedOut_defaultedOut::~Small_explicit_defaultedOut_defaultedOut (void) = default;
+Small_explicit_defaultedOut_defaultedOut::Small_explicit_defaultedOut_defaultedOut (Small_explicit_defaultedOut_defaultedOut &&rhs) = default;
+
+
+Small_explicit_defaultedOut_defaultedOut Small_explicit_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Small_explicit_defaultedOut_defaultedOut> (Small_explicit_defaultedOut_defaultedOut arg);
+/*** C++ class Large_explicit_defaultedOut_defaultedOut ***/
+class Large_explicit_defaultedOut_defaultedOut {
+public:
+  Large_explicit_defaultedOut_defaultedOut (void);
+  Large_explicit_defaultedOut_defaultedOut (const Large_explicit_defaultedOut_defaultedOut &rhs);
+  ~Large_explicit_defaultedOut_defaultedOut (void);
+  Large_explicit_defaultedOut_defaultedOut (Large_explicit_defaultedOut_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_explicit_defaultedOut_defaultedOut::Large_explicit_defaultedOut_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_defaultedOut_defaultedOut::Large_explicit_defaultedOut_defaultedOut (const Large_explicit_defaultedOut_defaultedOut &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_defaultedOut_defaultedOut::~Large_explicit_defaultedOut_defaultedOut (void) = default;
+Large_explicit_defaultedOut_defaultedOut::Large_explicit_defaultedOut_defaultedOut (Large_explicit_defaultedOut_defaultedOut &&rhs) = default;
+
+
+Large_explicit_defaultedOut_defaultedOut Large_explicit_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Large_explicit_defaultedOut_defaultedOut> (Large_explicit_defaultedOut_defaultedOut arg);
+/*** Class derived from Small_explicit_defaultedOut_defaultedOut ***/
+class Derived_explicit_defaultedOut_defaultedOut : public Small_explicit_defaultedOut_defaultedOut {
+public:
+};
+
+Derived_explicit_defaultedOut_defaultedOut Derived_explicit_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Derived_explicit_defaultedOut_defaultedOut> (Derived_explicit_defaultedOut_defaultedOut arg);
+/*** Class that contains Small_explicit_defaultedOut_defaultedOut ***/
+class Container_explicit_defaultedOut_defaultedOut {
+public:
+  Small_explicit_defaultedOut_defaultedOut item;
+};
+
+Container_explicit_defaultedOut_defaultedOut Container_explicit_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_explicit_defaultedOut_defaultedOut> (Container_explicit_defaultedOut_defaultedOut arg);
+/*** C++ class Small_explicit_defaultedOut_deleted ***/
+class Small_explicit_defaultedOut_deleted {
+public:
+  Small_explicit_defaultedOut_deleted (void);
+  Small_explicit_defaultedOut_deleted (const Small_explicit_defaultedOut_deleted &rhs);
+  ~Small_explicit_defaultedOut_deleted (void);
+  Small_explicit_defaultedOut_deleted (Small_explicit_defaultedOut_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_explicit_defaultedOut_deleted::Small_explicit_defaultedOut_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_explicit_defaultedOut_deleted::Small_explicit_defaultedOut_deleted (const Small_explicit_defaultedOut_deleted &rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_explicit_defaultedOut_deleted::~Small_explicit_defaultedOut_deleted (void) = default;
+
+
+Small_explicit_defaultedOut_deleted Small_explicit_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Small_explicit_defaultedOut_deleted> (Small_explicit_defaultedOut_deleted arg);
+/*** C++ class Large_explicit_defaultedOut_deleted ***/
+class Large_explicit_defaultedOut_deleted {
+public:
+  Large_explicit_defaultedOut_deleted (void);
+  Large_explicit_defaultedOut_deleted (const Large_explicit_defaultedOut_deleted &rhs);
+  ~Large_explicit_defaultedOut_deleted (void);
+  Large_explicit_defaultedOut_deleted (Large_explicit_defaultedOut_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_explicit_defaultedOut_deleted::Large_explicit_defaultedOut_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_explicit_defaultedOut_deleted::Large_explicit_defaultedOut_deleted (const Large_explicit_defaultedOut_deleted &rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_explicit_defaultedOut_deleted::~Large_explicit_defaultedOut_deleted (void) = default;
+
+
+Large_explicit_defaultedOut_deleted Large_explicit_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Large_explicit_defaultedOut_deleted> (Large_explicit_defaultedOut_deleted arg);
+/*** Class derived from Small_explicit_defaultedOut_deleted ***/
+class Derived_explicit_defaultedOut_deleted : public Small_explicit_defaultedOut_deleted {
+public:
+};
+
+Derived_explicit_defaultedOut_deleted Derived_explicit_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Derived_explicit_defaultedOut_deleted> (Derived_explicit_defaultedOut_deleted arg);
+/*** Class that contains Small_explicit_defaultedOut_deleted ***/
+class Container_explicit_defaultedOut_deleted {
+public:
+  Small_explicit_defaultedOut_deleted item;
+};
+
+Container_explicit_defaultedOut_deleted Container_explicit_defaultedOut_deleted_var; /* global var */
+
+template int cbv_container<Container_explicit_defaultedOut_deleted> (Container_explicit_defaultedOut_deleted arg);
+/*** C++ class Small_defaultedIn_absent_absent ***/
+class Small_defaultedIn_absent_absent {
+public:
+  Small_defaultedIn_absent_absent (void);
+  Small_defaultedIn_absent_absent (const Small_defaultedIn_absent_absent &rhs) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedIn_absent_absent::Small_defaultedIn_absent_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_defaultedIn_absent_absent Small_defaultedIn_absent_absent_var; /* global var */
+
+template int cbv<Small_defaultedIn_absent_absent> (Small_defaultedIn_absent_absent arg);
+/*** C++ class Large_defaultedIn_absent_absent ***/
+class Large_defaultedIn_absent_absent {
+public:
+  Large_defaultedIn_absent_absent (void);
+  Large_defaultedIn_absent_absent (const Large_defaultedIn_absent_absent &rhs) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedIn_absent_absent::Large_defaultedIn_absent_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_defaultedIn_absent_absent Large_defaultedIn_absent_absent_var; /* global var */
+
+template int cbv<Large_defaultedIn_absent_absent> (Large_defaultedIn_absent_absent arg);
+/*** Class derived from Small_defaultedIn_absent_absent ***/
+class Derived_defaultedIn_absent_absent : public Small_defaultedIn_absent_absent {
+public:
+};
+
+Derived_defaultedIn_absent_absent Derived_defaultedIn_absent_absent_var; /* global var */
+
+template int cbv<Derived_defaultedIn_absent_absent> (Derived_defaultedIn_absent_absent arg);
+/*** Class that contains Small_defaultedIn_absent_absent ***/
+class Container_defaultedIn_absent_absent {
+public:
+  Small_defaultedIn_absent_absent item;
+};
+
+Container_defaultedIn_absent_absent Container_defaultedIn_absent_absent_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_absent_absent> (Container_defaultedIn_absent_absent arg);
+/*** C++ class Small_defaultedIn_absent_explicit ***/
+class Small_defaultedIn_absent_explicit {
+public:
+  Small_defaultedIn_absent_explicit (void);
+  Small_defaultedIn_absent_explicit (const Small_defaultedIn_absent_explicit &rhs) = default;
+  Small_defaultedIn_absent_explicit (Small_defaultedIn_absent_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedIn_absent_explicit::Small_defaultedIn_absent_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_absent_explicit::Small_defaultedIn_absent_explicit (Small_defaultedIn_absent_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedIn_absent_explicit Small_defaultedIn_absent_explicit_var; /* global var */
+
+template int cbv<Small_defaultedIn_absent_explicit> (Small_defaultedIn_absent_explicit arg);
+/*** C++ class Large_defaultedIn_absent_explicit ***/
+class Large_defaultedIn_absent_explicit {
+public:
+  Large_defaultedIn_absent_explicit (void);
+  Large_defaultedIn_absent_explicit (const Large_defaultedIn_absent_explicit &rhs) = default;
+  Large_defaultedIn_absent_explicit (Large_defaultedIn_absent_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedIn_absent_explicit::Large_defaultedIn_absent_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_absent_explicit::Large_defaultedIn_absent_explicit (Large_defaultedIn_absent_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedIn_absent_explicit Large_defaultedIn_absent_explicit_var; /* global var */
+
+template int cbv<Large_defaultedIn_absent_explicit> (Large_defaultedIn_absent_explicit arg);
+/*** Class derived from Small_defaultedIn_absent_explicit ***/
+class Derived_defaultedIn_absent_explicit : public Small_defaultedIn_absent_explicit {
+public:
+};
+
+Derived_defaultedIn_absent_explicit Derived_defaultedIn_absent_explicit_var; /* global var */
+
+template int cbv<Derived_defaultedIn_absent_explicit> (Derived_defaultedIn_absent_explicit arg);
+/*** Class that contains Small_defaultedIn_absent_explicit ***/
+class Container_defaultedIn_absent_explicit {
+public:
+  Small_defaultedIn_absent_explicit item;
+};
+
+Container_defaultedIn_absent_explicit Container_defaultedIn_absent_explicit_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_absent_explicit> (Container_defaultedIn_absent_explicit arg);
+/*** C++ class Small_defaultedIn_absent_defaultedIn ***/
+class Small_defaultedIn_absent_defaultedIn {
+public:
+  Small_defaultedIn_absent_defaultedIn (void);
+  Small_defaultedIn_absent_defaultedIn (const Small_defaultedIn_absent_defaultedIn &rhs) = default;
+  Small_defaultedIn_absent_defaultedIn (Small_defaultedIn_absent_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedIn_absent_defaultedIn::Small_defaultedIn_absent_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_defaultedIn_absent_defaultedIn Small_defaultedIn_absent_defaultedIn_var; /* global var */
+
+template int cbv<Small_defaultedIn_absent_defaultedIn> (Small_defaultedIn_absent_defaultedIn arg);
+/*** C++ class Large_defaultedIn_absent_defaultedIn ***/
+class Large_defaultedIn_absent_defaultedIn {
+public:
+  Large_defaultedIn_absent_defaultedIn (void);
+  Large_defaultedIn_absent_defaultedIn (const Large_defaultedIn_absent_defaultedIn &rhs) = default;
+  Large_defaultedIn_absent_defaultedIn (Large_defaultedIn_absent_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedIn_absent_defaultedIn::Large_defaultedIn_absent_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_defaultedIn_absent_defaultedIn Large_defaultedIn_absent_defaultedIn_var; /* global var */
+
+template int cbv<Large_defaultedIn_absent_defaultedIn> (Large_defaultedIn_absent_defaultedIn arg);
+/*** Class derived from Small_defaultedIn_absent_defaultedIn ***/
+class Derived_defaultedIn_absent_defaultedIn : public Small_defaultedIn_absent_defaultedIn {
+public:
+};
+
+Derived_defaultedIn_absent_defaultedIn Derived_defaultedIn_absent_defaultedIn_var; /* global var */
+
+template int cbv<Derived_defaultedIn_absent_defaultedIn> (Derived_defaultedIn_absent_defaultedIn arg);
+/*** Class that contains Small_defaultedIn_absent_defaultedIn ***/
+class Container_defaultedIn_absent_defaultedIn {
+public:
+  Small_defaultedIn_absent_defaultedIn item;
+};
+
+Container_defaultedIn_absent_defaultedIn Container_defaultedIn_absent_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_absent_defaultedIn> (Container_defaultedIn_absent_defaultedIn arg);
+/*** C++ class Small_defaultedIn_absent_defaultedOut ***/
+class Small_defaultedIn_absent_defaultedOut {
+public:
+  Small_defaultedIn_absent_defaultedOut (void);
+  Small_defaultedIn_absent_defaultedOut (const Small_defaultedIn_absent_defaultedOut &rhs) = default;
+  Small_defaultedIn_absent_defaultedOut (Small_defaultedIn_absent_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedIn_absent_defaultedOut::Small_defaultedIn_absent_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_absent_defaultedOut::Small_defaultedIn_absent_defaultedOut (Small_defaultedIn_absent_defaultedOut &&rhs) = default;
+
+
+Small_defaultedIn_absent_defaultedOut Small_defaultedIn_absent_defaultedOut_var; /* global var */
+
+template int cbv<Small_defaultedIn_absent_defaultedOut> (Small_defaultedIn_absent_defaultedOut arg);
+/*** C++ class Large_defaultedIn_absent_defaultedOut ***/
+class Large_defaultedIn_absent_defaultedOut {
+public:
+  Large_defaultedIn_absent_defaultedOut (void);
+  Large_defaultedIn_absent_defaultedOut (const Large_defaultedIn_absent_defaultedOut &rhs) = default;
+  Large_defaultedIn_absent_defaultedOut (Large_defaultedIn_absent_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedIn_absent_defaultedOut::Large_defaultedIn_absent_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_absent_defaultedOut::Large_defaultedIn_absent_defaultedOut (Large_defaultedIn_absent_defaultedOut &&rhs) = default;
+
+
+Large_defaultedIn_absent_defaultedOut Large_defaultedIn_absent_defaultedOut_var; /* global var */
+
+template int cbv<Large_defaultedIn_absent_defaultedOut> (Large_defaultedIn_absent_defaultedOut arg);
+/*** Class derived from Small_defaultedIn_absent_defaultedOut ***/
+class Derived_defaultedIn_absent_defaultedOut : public Small_defaultedIn_absent_defaultedOut {
+public:
+};
+
+Derived_defaultedIn_absent_defaultedOut Derived_defaultedIn_absent_defaultedOut_var; /* global var */
+
+template int cbv<Derived_defaultedIn_absent_defaultedOut> (Derived_defaultedIn_absent_defaultedOut arg);
+/*** Class that contains Small_defaultedIn_absent_defaultedOut ***/
+class Container_defaultedIn_absent_defaultedOut {
+public:
+  Small_defaultedIn_absent_defaultedOut item;
+};
+
+Container_defaultedIn_absent_defaultedOut Container_defaultedIn_absent_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_absent_defaultedOut> (Container_defaultedIn_absent_defaultedOut arg);
+/*** C++ class Small_defaultedIn_absent_deleted ***/
+class Small_defaultedIn_absent_deleted {
+public:
+  Small_defaultedIn_absent_deleted (void);
+  Small_defaultedIn_absent_deleted (const Small_defaultedIn_absent_deleted &rhs) = default;
+  Small_defaultedIn_absent_deleted (Small_defaultedIn_absent_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_defaultedIn_absent_deleted::Small_defaultedIn_absent_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_defaultedIn_absent_deleted Small_defaultedIn_absent_deleted_var; /* global var */
+
+template int cbv<Small_defaultedIn_absent_deleted> (Small_defaultedIn_absent_deleted arg);
+/*** C++ class Large_defaultedIn_absent_deleted ***/
+class Large_defaultedIn_absent_deleted {
+public:
+  Large_defaultedIn_absent_deleted (void);
+  Large_defaultedIn_absent_deleted (const Large_defaultedIn_absent_deleted &rhs) = default;
+  Large_defaultedIn_absent_deleted (Large_defaultedIn_absent_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_defaultedIn_absent_deleted::Large_defaultedIn_absent_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_defaultedIn_absent_deleted Large_defaultedIn_absent_deleted_var; /* global var */
+
+template int cbv<Large_defaultedIn_absent_deleted> (Large_defaultedIn_absent_deleted arg);
+/*** Class derived from Small_defaultedIn_absent_deleted ***/
+class Derived_defaultedIn_absent_deleted : public Small_defaultedIn_absent_deleted {
+public:
+};
+
+Derived_defaultedIn_absent_deleted Derived_defaultedIn_absent_deleted_var; /* global var */
+
+template int cbv<Derived_defaultedIn_absent_deleted> (Derived_defaultedIn_absent_deleted arg);
+/*** Class that contains Small_defaultedIn_absent_deleted ***/
+class Container_defaultedIn_absent_deleted {
+public:
+  Small_defaultedIn_absent_deleted item;
+};
+
+Container_defaultedIn_absent_deleted Container_defaultedIn_absent_deleted_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_absent_deleted> (Container_defaultedIn_absent_deleted arg);
+/*** C++ class Small_defaultedIn_explicit_absent ***/
+class Small_defaultedIn_explicit_absent {
+public:
+  Small_defaultedIn_explicit_absent (void);
+  Small_defaultedIn_explicit_absent (const Small_defaultedIn_explicit_absent &rhs) = default;
+  ~Small_defaultedIn_explicit_absent (void);
+
+
+  int data[2];
+};
+
+Small_defaultedIn_explicit_absent::Small_defaultedIn_explicit_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_explicit_absent::~Small_defaultedIn_explicit_absent (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedIn_explicit_absent Small_defaultedIn_explicit_absent_var; /* global var */
+
+template int cbv<Small_defaultedIn_explicit_absent> (Small_defaultedIn_explicit_absent arg);
+/*** C++ class Large_defaultedIn_explicit_absent ***/
+class Large_defaultedIn_explicit_absent {
+public:
+  Large_defaultedIn_explicit_absent (void);
+  Large_defaultedIn_explicit_absent (const Large_defaultedIn_explicit_absent &rhs) = default;
+  ~Large_defaultedIn_explicit_absent (void);
+
+
+  int data[150];
+};
+
+Large_defaultedIn_explicit_absent::Large_defaultedIn_explicit_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_explicit_absent::~Large_defaultedIn_explicit_absent (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedIn_explicit_absent Large_defaultedIn_explicit_absent_var; /* global var */
+
+template int cbv<Large_defaultedIn_explicit_absent> (Large_defaultedIn_explicit_absent arg);
+/*** Class derived from Small_defaultedIn_explicit_absent ***/
+class Derived_defaultedIn_explicit_absent : public Small_defaultedIn_explicit_absent {
+public:
+};
+
+Derived_defaultedIn_explicit_absent Derived_defaultedIn_explicit_absent_var; /* global var */
+
+template int cbv<Derived_defaultedIn_explicit_absent> (Derived_defaultedIn_explicit_absent arg);
+/*** Class that contains Small_defaultedIn_explicit_absent ***/
+class Container_defaultedIn_explicit_absent {
+public:
+  Small_defaultedIn_explicit_absent item;
+};
+
+Container_defaultedIn_explicit_absent Container_defaultedIn_explicit_absent_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_explicit_absent> (Container_defaultedIn_explicit_absent arg);
+/*** C++ class Small_defaultedIn_explicit_explicit ***/
+class Small_defaultedIn_explicit_explicit {
+public:
+  Small_defaultedIn_explicit_explicit (void);
+  Small_defaultedIn_explicit_explicit (const Small_defaultedIn_explicit_explicit &rhs) = default;
+  ~Small_defaultedIn_explicit_explicit (void);
+  Small_defaultedIn_explicit_explicit (Small_defaultedIn_explicit_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedIn_explicit_explicit::Small_defaultedIn_explicit_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_explicit_explicit::~Small_defaultedIn_explicit_explicit (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_defaultedIn_explicit_explicit::Small_defaultedIn_explicit_explicit (Small_defaultedIn_explicit_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedIn_explicit_explicit Small_defaultedIn_explicit_explicit_var; /* global var */
+
+template int cbv<Small_defaultedIn_explicit_explicit> (Small_defaultedIn_explicit_explicit arg);
+/*** C++ class Large_defaultedIn_explicit_explicit ***/
+class Large_defaultedIn_explicit_explicit {
+public:
+  Large_defaultedIn_explicit_explicit (void);
+  Large_defaultedIn_explicit_explicit (const Large_defaultedIn_explicit_explicit &rhs) = default;
+  ~Large_defaultedIn_explicit_explicit (void);
+  Large_defaultedIn_explicit_explicit (Large_defaultedIn_explicit_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedIn_explicit_explicit::Large_defaultedIn_explicit_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_explicit_explicit::~Large_defaultedIn_explicit_explicit (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_defaultedIn_explicit_explicit::Large_defaultedIn_explicit_explicit (Large_defaultedIn_explicit_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedIn_explicit_explicit Large_defaultedIn_explicit_explicit_var; /* global var */
+
+template int cbv<Large_defaultedIn_explicit_explicit> (Large_defaultedIn_explicit_explicit arg);
+/*** Class derived from Small_defaultedIn_explicit_explicit ***/
+class Derived_defaultedIn_explicit_explicit : public Small_defaultedIn_explicit_explicit {
+public:
+};
+
+Derived_defaultedIn_explicit_explicit Derived_defaultedIn_explicit_explicit_var; /* global var */
+
+template int cbv<Derived_defaultedIn_explicit_explicit> (Derived_defaultedIn_explicit_explicit arg);
+/*** Class that contains Small_defaultedIn_explicit_explicit ***/
+class Container_defaultedIn_explicit_explicit {
+public:
+  Small_defaultedIn_explicit_explicit item;
+};
+
+Container_defaultedIn_explicit_explicit Container_defaultedIn_explicit_explicit_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_explicit_explicit> (Container_defaultedIn_explicit_explicit arg);
+/*** C++ class Small_defaultedIn_explicit_defaultedIn ***/
+class Small_defaultedIn_explicit_defaultedIn {
+public:
+  Small_defaultedIn_explicit_defaultedIn (void);
+  Small_defaultedIn_explicit_defaultedIn (const Small_defaultedIn_explicit_defaultedIn &rhs) = default;
+  ~Small_defaultedIn_explicit_defaultedIn (void);
+  Small_defaultedIn_explicit_defaultedIn (Small_defaultedIn_explicit_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedIn_explicit_defaultedIn::Small_defaultedIn_explicit_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_explicit_defaultedIn::~Small_defaultedIn_explicit_defaultedIn (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedIn_explicit_defaultedIn Small_defaultedIn_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Small_defaultedIn_explicit_defaultedIn> (Small_defaultedIn_explicit_defaultedIn arg);
+/*** C++ class Large_defaultedIn_explicit_defaultedIn ***/
+class Large_defaultedIn_explicit_defaultedIn {
+public:
+  Large_defaultedIn_explicit_defaultedIn (void);
+  Large_defaultedIn_explicit_defaultedIn (const Large_defaultedIn_explicit_defaultedIn &rhs) = default;
+  ~Large_defaultedIn_explicit_defaultedIn (void);
+  Large_defaultedIn_explicit_defaultedIn (Large_defaultedIn_explicit_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedIn_explicit_defaultedIn::Large_defaultedIn_explicit_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_explicit_defaultedIn::~Large_defaultedIn_explicit_defaultedIn (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedIn_explicit_defaultedIn Large_defaultedIn_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Large_defaultedIn_explicit_defaultedIn> (Large_defaultedIn_explicit_defaultedIn arg);
+/*** Class derived from Small_defaultedIn_explicit_defaultedIn ***/
+class Derived_defaultedIn_explicit_defaultedIn : public Small_defaultedIn_explicit_defaultedIn {
+public:
+};
+
+Derived_defaultedIn_explicit_defaultedIn Derived_defaultedIn_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Derived_defaultedIn_explicit_defaultedIn> (Derived_defaultedIn_explicit_defaultedIn arg);
+/*** Class that contains Small_defaultedIn_explicit_defaultedIn ***/
+class Container_defaultedIn_explicit_defaultedIn {
+public:
+  Small_defaultedIn_explicit_defaultedIn item;
+};
+
+Container_defaultedIn_explicit_defaultedIn Container_defaultedIn_explicit_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_explicit_defaultedIn> (Container_defaultedIn_explicit_defaultedIn arg);
+/*** C++ class Small_defaultedIn_explicit_defaultedOut ***/
+class Small_defaultedIn_explicit_defaultedOut {
+public:
+  Small_defaultedIn_explicit_defaultedOut (void);
+  Small_defaultedIn_explicit_defaultedOut (const Small_defaultedIn_explicit_defaultedOut &rhs) = default;
+  ~Small_defaultedIn_explicit_defaultedOut (void);
+  Small_defaultedIn_explicit_defaultedOut (Small_defaultedIn_explicit_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedIn_explicit_defaultedOut::Small_defaultedIn_explicit_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_explicit_defaultedOut::~Small_defaultedIn_explicit_defaultedOut (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_defaultedIn_explicit_defaultedOut::Small_defaultedIn_explicit_defaultedOut (Small_defaultedIn_explicit_defaultedOut &&rhs) = default;
+
+
+Small_defaultedIn_explicit_defaultedOut Small_defaultedIn_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Small_defaultedIn_explicit_defaultedOut> (Small_defaultedIn_explicit_defaultedOut arg);
+/*** C++ class Large_defaultedIn_explicit_defaultedOut ***/
+class Large_defaultedIn_explicit_defaultedOut {
+public:
+  Large_defaultedIn_explicit_defaultedOut (void);
+  Large_defaultedIn_explicit_defaultedOut (const Large_defaultedIn_explicit_defaultedOut &rhs) = default;
+  ~Large_defaultedIn_explicit_defaultedOut (void);
+  Large_defaultedIn_explicit_defaultedOut (Large_defaultedIn_explicit_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedIn_explicit_defaultedOut::Large_defaultedIn_explicit_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_explicit_defaultedOut::~Large_defaultedIn_explicit_defaultedOut (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_defaultedIn_explicit_defaultedOut::Large_defaultedIn_explicit_defaultedOut (Large_defaultedIn_explicit_defaultedOut &&rhs) = default;
+
+
+Large_defaultedIn_explicit_defaultedOut Large_defaultedIn_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Large_defaultedIn_explicit_defaultedOut> (Large_defaultedIn_explicit_defaultedOut arg);
+/*** Class derived from Small_defaultedIn_explicit_defaultedOut ***/
+class Derived_defaultedIn_explicit_defaultedOut : public Small_defaultedIn_explicit_defaultedOut {
+public:
+};
+
+Derived_defaultedIn_explicit_defaultedOut Derived_defaultedIn_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Derived_defaultedIn_explicit_defaultedOut> (Derived_defaultedIn_explicit_defaultedOut arg);
+/*** Class that contains Small_defaultedIn_explicit_defaultedOut ***/
+class Container_defaultedIn_explicit_defaultedOut {
+public:
+  Small_defaultedIn_explicit_defaultedOut item;
+};
+
+Container_defaultedIn_explicit_defaultedOut Container_defaultedIn_explicit_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_explicit_defaultedOut> (Container_defaultedIn_explicit_defaultedOut arg);
+/*** C++ class Small_defaultedIn_explicit_deleted ***/
+class Small_defaultedIn_explicit_deleted {
+public:
+  Small_defaultedIn_explicit_deleted (void);
+  Small_defaultedIn_explicit_deleted (const Small_defaultedIn_explicit_deleted &rhs) = default;
+  ~Small_defaultedIn_explicit_deleted (void);
+  Small_defaultedIn_explicit_deleted (Small_defaultedIn_explicit_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_defaultedIn_explicit_deleted::Small_defaultedIn_explicit_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_explicit_deleted::~Small_defaultedIn_explicit_deleted (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedIn_explicit_deleted Small_defaultedIn_explicit_deleted_var; /* global var */
+
+template int cbv<Small_defaultedIn_explicit_deleted> (Small_defaultedIn_explicit_deleted arg);
+/*** C++ class Large_defaultedIn_explicit_deleted ***/
+class Large_defaultedIn_explicit_deleted {
+public:
+  Large_defaultedIn_explicit_deleted (void);
+  Large_defaultedIn_explicit_deleted (const Large_defaultedIn_explicit_deleted &rhs) = default;
+  ~Large_defaultedIn_explicit_deleted (void);
+  Large_defaultedIn_explicit_deleted (Large_defaultedIn_explicit_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_defaultedIn_explicit_deleted::Large_defaultedIn_explicit_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_explicit_deleted::~Large_defaultedIn_explicit_deleted (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedIn_explicit_deleted Large_defaultedIn_explicit_deleted_var; /* global var */
+
+template int cbv<Large_defaultedIn_explicit_deleted> (Large_defaultedIn_explicit_deleted arg);
+/*** Class derived from Small_defaultedIn_explicit_deleted ***/
+class Derived_defaultedIn_explicit_deleted : public Small_defaultedIn_explicit_deleted {
+public:
+};
+
+Derived_defaultedIn_explicit_deleted Derived_defaultedIn_explicit_deleted_var; /* global var */
+
+template int cbv<Derived_defaultedIn_explicit_deleted> (Derived_defaultedIn_explicit_deleted arg);
+/*** Class that contains Small_defaultedIn_explicit_deleted ***/
+class Container_defaultedIn_explicit_deleted {
+public:
+  Small_defaultedIn_explicit_deleted item;
+};
+
+Container_defaultedIn_explicit_deleted Container_defaultedIn_explicit_deleted_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_explicit_deleted> (Container_defaultedIn_explicit_deleted arg);
+/*** C++ class Small_defaultedIn_defaultedIn_absent ***/
+class Small_defaultedIn_defaultedIn_absent {
+public:
+  Small_defaultedIn_defaultedIn_absent (void);
+  Small_defaultedIn_defaultedIn_absent (const Small_defaultedIn_defaultedIn_absent &rhs) = default;
+  ~Small_defaultedIn_defaultedIn_absent (void) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedIn_defaultedIn_absent::Small_defaultedIn_defaultedIn_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_defaultedIn_defaultedIn_absent Small_defaultedIn_defaultedIn_absent_var; /* global var */
+
+template int cbv<Small_defaultedIn_defaultedIn_absent> (Small_defaultedIn_defaultedIn_absent arg);
+/*** C++ class Large_defaultedIn_defaultedIn_absent ***/
+class Large_defaultedIn_defaultedIn_absent {
+public:
+  Large_defaultedIn_defaultedIn_absent (void);
+  Large_defaultedIn_defaultedIn_absent (const Large_defaultedIn_defaultedIn_absent &rhs) = default;
+  ~Large_defaultedIn_defaultedIn_absent (void) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedIn_defaultedIn_absent::Large_defaultedIn_defaultedIn_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_defaultedIn_defaultedIn_absent Large_defaultedIn_defaultedIn_absent_var; /* global var */
+
+template int cbv<Large_defaultedIn_defaultedIn_absent> (Large_defaultedIn_defaultedIn_absent arg);
+/*** Class derived from Small_defaultedIn_defaultedIn_absent ***/
+class Derived_defaultedIn_defaultedIn_absent : public Small_defaultedIn_defaultedIn_absent {
+public:
+};
+
+Derived_defaultedIn_defaultedIn_absent Derived_defaultedIn_defaultedIn_absent_var; /* global var */
+
+template int cbv<Derived_defaultedIn_defaultedIn_absent> (Derived_defaultedIn_defaultedIn_absent arg);
+/*** Class that contains Small_defaultedIn_defaultedIn_absent ***/
+class Container_defaultedIn_defaultedIn_absent {
+public:
+  Small_defaultedIn_defaultedIn_absent item;
+};
+
+Container_defaultedIn_defaultedIn_absent Container_defaultedIn_defaultedIn_absent_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_defaultedIn_absent> (Container_defaultedIn_defaultedIn_absent arg);
+/*** C++ class Small_defaultedIn_defaultedIn_explicit ***/
+class Small_defaultedIn_defaultedIn_explicit {
+public:
+  Small_defaultedIn_defaultedIn_explicit (void);
+  Small_defaultedIn_defaultedIn_explicit (const Small_defaultedIn_defaultedIn_explicit &rhs) = default;
+  ~Small_defaultedIn_defaultedIn_explicit (void) = default;
+  Small_defaultedIn_defaultedIn_explicit (Small_defaultedIn_defaultedIn_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedIn_defaultedIn_explicit::Small_defaultedIn_defaultedIn_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_defaultedIn_explicit::Small_defaultedIn_defaultedIn_explicit (Small_defaultedIn_defaultedIn_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedIn_defaultedIn_explicit Small_defaultedIn_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Small_defaultedIn_defaultedIn_explicit> (Small_defaultedIn_defaultedIn_explicit arg);
+/*** C++ class Large_defaultedIn_defaultedIn_explicit ***/
+class Large_defaultedIn_defaultedIn_explicit {
+public:
+  Large_defaultedIn_defaultedIn_explicit (void);
+  Large_defaultedIn_defaultedIn_explicit (const Large_defaultedIn_defaultedIn_explicit &rhs) = default;
+  ~Large_defaultedIn_defaultedIn_explicit (void) = default;
+  Large_defaultedIn_defaultedIn_explicit (Large_defaultedIn_defaultedIn_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedIn_defaultedIn_explicit::Large_defaultedIn_defaultedIn_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_defaultedIn_explicit::Large_defaultedIn_defaultedIn_explicit (Large_defaultedIn_defaultedIn_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedIn_defaultedIn_explicit Large_defaultedIn_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Large_defaultedIn_defaultedIn_explicit> (Large_defaultedIn_defaultedIn_explicit arg);
+/*** Class derived from Small_defaultedIn_defaultedIn_explicit ***/
+class Derived_defaultedIn_defaultedIn_explicit : public Small_defaultedIn_defaultedIn_explicit {
+public:
+};
+
+Derived_defaultedIn_defaultedIn_explicit Derived_defaultedIn_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Derived_defaultedIn_defaultedIn_explicit> (Derived_defaultedIn_defaultedIn_explicit arg);
+/*** Class that contains Small_defaultedIn_defaultedIn_explicit ***/
+class Container_defaultedIn_defaultedIn_explicit {
+public:
+  Small_defaultedIn_defaultedIn_explicit item;
+};
+
+Container_defaultedIn_defaultedIn_explicit Container_defaultedIn_defaultedIn_explicit_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_defaultedIn_explicit> (Container_defaultedIn_defaultedIn_explicit arg);
+/*** C++ class Small_defaultedIn_defaultedIn_defaultedIn ***/
+class Small_defaultedIn_defaultedIn_defaultedIn {
+public:
+  Small_defaultedIn_defaultedIn_defaultedIn (void);
+  Small_defaultedIn_defaultedIn_defaultedIn (const Small_defaultedIn_defaultedIn_defaultedIn &rhs) = default;
+  ~Small_defaultedIn_defaultedIn_defaultedIn (void) = default;
+  Small_defaultedIn_defaultedIn_defaultedIn (Small_defaultedIn_defaultedIn_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedIn_defaultedIn_defaultedIn::Small_defaultedIn_defaultedIn_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_defaultedIn_defaultedIn_defaultedIn Small_defaultedIn_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Small_defaultedIn_defaultedIn_defaultedIn> (Small_defaultedIn_defaultedIn_defaultedIn arg);
+/*** C++ class Large_defaultedIn_defaultedIn_defaultedIn ***/
+class Large_defaultedIn_defaultedIn_defaultedIn {
+public:
+  Large_defaultedIn_defaultedIn_defaultedIn (void);
+  Large_defaultedIn_defaultedIn_defaultedIn (const Large_defaultedIn_defaultedIn_defaultedIn &rhs) = default;
+  ~Large_defaultedIn_defaultedIn_defaultedIn (void) = default;
+  Large_defaultedIn_defaultedIn_defaultedIn (Large_defaultedIn_defaultedIn_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedIn_defaultedIn_defaultedIn::Large_defaultedIn_defaultedIn_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_defaultedIn_defaultedIn_defaultedIn Large_defaultedIn_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Large_defaultedIn_defaultedIn_defaultedIn> (Large_defaultedIn_defaultedIn_defaultedIn arg);
+/*** Class derived from Small_defaultedIn_defaultedIn_defaultedIn ***/
+class Derived_defaultedIn_defaultedIn_defaultedIn : public Small_defaultedIn_defaultedIn_defaultedIn {
+public:
+};
+
+Derived_defaultedIn_defaultedIn_defaultedIn Derived_defaultedIn_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Derived_defaultedIn_defaultedIn_defaultedIn> (Derived_defaultedIn_defaultedIn_defaultedIn arg);
+/*** Class that contains Small_defaultedIn_defaultedIn_defaultedIn ***/
+class Container_defaultedIn_defaultedIn_defaultedIn {
+public:
+  Small_defaultedIn_defaultedIn_defaultedIn item;
+};
+
+Container_defaultedIn_defaultedIn_defaultedIn Container_defaultedIn_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_defaultedIn_defaultedIn> (Container_defaultedIn_defaultedIn_defaultedIn arg);
+/*** C++ class Small_defaultedIn_defaultedIn_defaultedOut ***/
+class Small_defaultedIn_defaultedIn_defaultedOut {
+public:
+  Small_defaultedIn_defaultedIn_defaultedOut (void);
+  Small_defaultedIn_defaultedIn_defaultedOut (const Small_defaultedIn_defaultedIn_defaultedOut &rhs) = default;
+  ~Small_defaultedIn_defaultedIn_defaultedOut (void) = default;
+  Small_defaultedIn_defaultedIn_defaultedOut (Small_defaultedIn_defaultedIn_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedIn_defaultedIn_defaultedOut::Small_defaultedIn_defaultedIn_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_defaultedIn_defaultedOut::Small_defaultedIn_defaultedIn_defaultedOut (Small_defaultedIn_defaultedIn_defaultedOut &&rhs) = default;
+
+
+Small_defaultedIn_defaultedIn_defaultedOut Small_defaultedIn_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Small_defaultedIn_defaultedIn_defaultedOut> (Small_defaultedIn_defaultedIn_defaultedOut arg);
+/*** C++ class Large_defaultedIn_defaultedIn_defaultedOut ***/
+class Large_defaultedIn_defaultedIn_defaultedOut {
+public:
+  Large_defaultedIn_defaultedIn_defaultedOut (void);
+  Large_defaultedIn_defaultedIn_defaultedOut (const Large_defaultedIn_defaultedIn_defaultedOut &rhs) = default;
+  ~Large_defaultedIn_defaultedIn_defaultedOut (void) = default;
+  Large_defaultedIn_defaultedIn_defaultedOut (Large_defaultedIn_defaultedIn_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedIn_defaultedIn_defaultedOut::Large_defaultedIn_defaultedIn_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_defaultedIn_defaultedOut::Large_defaultedIn_defaultedIn_defaultedOut (Large_defaultedIn_defaultedIn_defaultedOut &&rhs) = default;
+
+
+Large_defaultedIn_defaultedIn_defaultedOut Large_defaultedIn_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Large_defaultedIn_defaultedIn_defaultedOut> (Large_defaultedIn_defaultedIn_defaultedOut arg);
+/*** Class derived from Small_defaultedIn_defaultedIn_defaultedOut ***/
+class Derived_defaultedIn_defaultedIn_defaultedOut : public Small_defaultedIn_defaultedIn_defaultedOut {
+public:
+};
+
+Derived_defaultedIn_defaultedIn_defaultedOut Derived_defaultedIn_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Derived_defaultedIn_defaultedIn_defaultedOut> (Derived_defaultedIn_defaultedIn_defaultedOut arg);
+/*** Class that contains Small_defaultedIn_defaultedIn_defaultedOut ***/
+class Container_defaultedIn_defaultedIn_defaultedOut {
+public:
+  Small_defaultedIn_defaultedIn_defaultedOut item;
+};
+
+Container_defaultedIn_defaultedIn_defaultedOut Container_defaultedIn_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_defaultedIn_defaultedOut> (Container_defaultedIn_defaultedIn_defaultedOut arg);
+/*** C++ class Small_defaultedIn_defaultedIn_deleted ***/
+class Small_defaultedIn_defaultedIn_deleted {
+public:
+  Small_defaultedIn_defaultedIn_deleted (void);
+  Small_defaultedIn_defaultedIn_deleted (const Small_defaultedIn_defaultedIn_deleted &rhs) = default;
+  ~Small_defaultedIn_defaultedIn_deleted (void) = default;
+  Small_defaultedIn_defaultedIn_deleted (Small_defaultedIn_defaultedIn_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_defaultedIn_defaultedIn_deleted::Small_defaultedIn_defaultedIn_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_defaultedIn_defaultedIn_deleted Small_defaultedIn_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Small_defaultedIn_defaultedIn_deleted> (Small_defaultedIn_defaultedIn_deleted arg);
+/*** C++ class Large_defaultedIn_defaultedIn_deleted ***/
+class Large_defaultedIn_defaultedIn_deleted {
+public:
+  Large_defaultedIn_defaultedIn_deleted (void);
+  Large_defaultedIn_defaultedIn_deleted (const Large_defaultedIn_defaultedIn_deleted &rhs) = default;
+  ~Large_defaultedIn_defaultedIn_deleted (void) = default;
+  Large_defaultedIn_defaultedIn_deleted (Large_defaultedIn_defaultedIn_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_defaultedIn_defaultedIn_deleted::Large_defaultedIn_defaultedIn_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_defaultedIn_defaultedIn_deleted Large_defaultedIn_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Large_defaultedIn_defaultedIn_deleted> (Large_defaultedIn_defaultedIn_deleted arg);
+/*** Class derived from Small_defaultedIn_defaultedIn_deleted ***/
+class Derived_defaultedIn_defaultedIn_deleted : public Small_defaultedIn_defaultedIn_deleted {
+public:
+};
+
+Derived_defaultedIn_defaultedIn_deleted Derived_defaultedIn_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Derived_defaultedIn_defaultedIn_deleted> (Derived_defaultedIn_defaultedIn_deleted arg);
+/*** Class that contains Small_defaultedIn_defaultedIn_deleted ***/
+class Container_defaultedIn_defaultedIn_deleted {
+public:
+  Small_defaultedIn_defaultedIn_deleted item;
+};
+
+Container_defaultedIn_defaultedIn_deleted Container_defaultedIn_defaultedIn_deleted_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_defaultedIn_deleted> (Container_defaultedIn_defaultedIn_deleted arg);
+/*** C++ class Small_defaultedIn_defaultedOut_absent ***/
+class Small_defaultedIn_defaultedOut_absent {
+public:
+  Small_defaultedIn_defaultedOut_absent (void);
+  Small_defaultedIn_defaultedOut_absent (const Small_defaultedIn_defaultedOut_absent &rhs) = default;
+  ~Small_defaultedIn_defaultedOut_absent (void);
+
+
+  int data[2];
+};
+
+Small_defaultedIn_defaultedOut_absent::Small_defaultedIn_defaultedOut_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_defaultedOut_absent::~Small_defaultedIn_defaultedOut_absent (void) = default;
+
+
+Small_defaultedIn_defaultedOut_absent Small_defaultedIn_defaultedOut_absent_var; /* global var */
+
+template int cbv<Small_defaultedIn_defaultedOut_absent> (Small_defaultedIn_defaultedOut_absent arg);
+/*** C++ class Large_defaultedIn_defaultedOut_absent ***/
+class Large_defaultedIn_defaultedOut_absent {
+public:
+  Large_defaultedIn_defaultedOut_absent (void);
+  Large_defaultedIn_defaultedOut_absent (const Large_defaultedIn_defaultedOut_absent &rhs) = default;
+  ~Large_defaultedIn_defaultedOut_absent (void);
+
+
+  int data[150];
+};
+
+Large_defaultedIn_defaultedOut_absent::Large_defaultedIn_defaultedOut_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_defaultedOut_absent::~Large_defaultedIn_defaultedOut_absent (void) = default;
+
+
+Large_defaultedIn_defaultedOut_absent Large_defaultedIn_defaultedOut_absent_var; /* global var */
+
+template int cbv<Large_defaultedIn_defaultedOut_absent> (Large_defaultedIn_defaultedOut_absent arg);
+/*** Class derived from Small_defaultedIn_defaultedOut_absent ***/
+class Derived_defaultedIn_defaultedOut_absent : public Small_defaultedIn_defaultedOut_absent {
+public:
+};
+
+Derived_defaultedIn_defaultedOut_absent Derived_defaultedIn_defaultedOut_absent_var; /* global var */
+
+template int cbv<Derived_defaultedIn_defaultedOut_absent> (Derived_defaultedIn_defaultedOut_absent arg);
+/*** Class that contains Small_defaultedIn_defaultedOut_absent ***/
+class Container_defaultedIn_defaultedOut_absent {
+public:
+  Small_defaultedIn_defaultedOut_absent item;
+};
+
+Container_defaultedIn_defaultedOut_absent Container_defaultedIn_defaultedOut_absent_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_defaultedOut_absent> (Container_defaultedIn_defaultedOut_absent arg);
+/*** C++ class Small_defaultedIn_defaultedOut_explicit ***/
+class Small_defaultedIn_defaultedOut_explicit {
+public:
+  Small_defaultedIn_defaultedOut_explicit (void);
+  Small_defaultedIn_defaultedOut_explicit (const Small_defaultedIn_defaultedOut_explicit &rhs) = default;
+  ~Small_defaultedIn_defaultedOut_explicit (void);
+  Small_defaultedIn_defaultedOut_explicit (Small_defaultedIn_defaultedOut_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedIn_defaultedOut_explicit::Small_defaultedIn_defaultedOut_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_defaultedOut_explicit::~Small_defaultedIn_defaultedOut_explicit (void) = default;
+Small_defaultedIn_defaultedOut_explicit::Small_defaultedIn_defaultedOut_explicit (Small_defaultedIn_defaultedOut_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedIn_defaultedOut_explicit Small_defaultedIn_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Small_defaultedIn_defaultedOut_explicit> (Small_defaultedIn_defaultedOut_explicit arg);
+/*** C++ class Large_defaultedIn_defaultedOut_explicit ***/
+class Large_defaultedIn_defaultedOut_explicit {
+public:
+  Large_defaultedIn_defaultedOut_explicit (void);
+  Large_defaultedIn_defaultedOut_explicit (const Large_defaultedIn_defaultedOut_explicit &rhs) = default;
+  ~Large_defaultedIn_defaultedOut_explicit (void);
+  Large_defaultedIn_defaultedOut_explicit (Large_defaultedIn_defaultedOut_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedIn_defaultedOut_explicit::Large_defaultedIn_defaultedOut_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_defaultedOut_explicit::~Large_defaultedIn_defaultedOut_explicit (void) = default;
+Large_defaultedIn_defaultedOut_explicit::Large_defaultedIn_defaultedOut_explicit (Large_defaultedIn_defaultedOut_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedIn_defaultedOut_explicit Large_defaultedIn_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Large_defaultedIn_defaultedOut_explicit> (Large_defaultedIn_defaultedOut_explicit arg);
+/*** Class derived from Small_defaultedIn_defaultedOut_explicit ***/
+class Derived_defaultedIn_defaultedOut_explicit : public Small_defaultedIn_defaultedOut_explicit {
+public:
+};
+
+Derived_defaultedIn_defaultedOut_explicit Derived_defaultedIn_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Derived_defaultedIn_defaultedOut_explicit> (Derived_defaultedIn_defaultedOut_explicit arg);
+/*** Class that contains Small_defaultedIn_defaultedOut_explicit ***/
+class Container_defaultedIn_defaultedOut_explicit {
+public:
+  Small_defaultedIn_defaultedOut_explicit item;
+};
+
+Container_defaultedIn_defaultedOut_explicit Container_defaultedIn_defaultedOut_explicit_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_defaultedOut_explicit> (Container_defaultedIn_defaultedOut_explicit arg);
+/*** C++ class Small_defaultedIn_defaultedOut_defaultedIn ***/
+class Small_defaultedIn_defaultedOut_defaultedIn {
+public:
+  Small_defaultedIn_defaultedOut_defaultedIn (void);
+  Small_defaultedIn_defaultedOut_defaultedIn (const Small_defaultedIn_defaultedOut_defaultedIn &rhs) = default;
+  ~Small_defaultedIn_defaultedOut_defaultedIn (void);
+  Small_defaultedIn_defaultedOut_defaultedIn (Small_defaultedIn_defaultedOut_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedIn_defaultedOut_defaultedIn::Small_defaultedIn_defaultedOut_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_defaultedOut_defaultedIn::~Small_defaultedIn_defaultedOut_defaultedIn (void) = default;
+
+
+Small_defaultedIn_defaultedOut_defaultedIn Small_defaultedIn_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Small_defaultedIn_defaultedOut_defaultedIn> (Small_defaultedIn_defaultedOut_defaultedIn arg);
+/*** C++ class Large_defaultedIn_defaultedOut_defaultedIn ***/
+class Large_defaultedIn_defaultedOut_defaultedIn {
+public:
+  Large_defaultedIn_defaultedOut_defaultedIn (void);
+  Large_defaultedIn_defaultedOut_defaultedIn (const Large_defaultedIn_defaultedOut_defaultedIn &rhs) = default;
+  ~Large_defaultedIn_defaultedOut_defaultedIn (void);
+  Large_defaultedIn_defaultedOut_defaultedIn (Large_defaultedIn_defaultedOut_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedIn_defaultedOut_defaultedIn::Large_defaultedIn_defaultedOut_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_defaultedOut_defaultedIn::~Large_defaultedIn_defaultedOut_defaultedIn (void) = default;
+
+
+Large_defaultedIn_defaultedOut_defaultedIn Large_defaultedIn_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Large_defaultedIn_defaultedOut_defaultedIn> (Large_defaultedIn_defaultedOut_defaultedIn arg);
+/*** Class derived from Small_defaultedIn_defaultedOut_defaultedIn ***/
+class Derived_defaultedIn_defaultedOut_defaultedIn : public Small_defaultedIn_defaultedOut_defaultedIn {
+public:
+};
+
+Derived_defaultedIn_defaultedOut_defaultedIn Derived_defaultedIn_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Derived_defaultedIn_defaultedOut_defaultedIn> (Derived_defaultedIn_defaultedOut_defaultedIn arg);
+/*** Class that contains Small_defaultedIn_defaultedOut_defaultedIn ***/
+class Container_defaultedIn_defaultedOut_defaultedIn {
+public:
+  Small_defaultedIn_defaultedOut_defaultedIn item;
+};
+
+Container_defaultedIn_defaultedOut_defaultedIn Container_defaultedIn_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_defaultedOut_defaultedIn> (Container_defaultedIn_defaultedOut_defaultedIn arg);
+/*** C++ class Small_defaultedIn_defaultedOut_defaultedOut ***/
+class Small_defaultedIn_defaultedOut_defaultedOut {
+public:
+  Small_defaultedIn_defaultedOut_defaultedOut (void);
+  Small_defaultedIn_defaultedOut_defaultedOut (const Small_defaultedIn_defaultedOut_defaultedOut &rhs) = default;
+  ~Small_defaultedIn_defaultedOut_defaultedOut (void);
+  Small_defaultedIn_defaultedOut_defaultedOut (Small_defaultedIn_defaultedOut_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedIn_defaultedOut_defaultedOut::Small_defaultedIn_defaultedOut_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_defaultedOut_defaultedOut::~Small_defaultedIn_defaultedOut_defaultedOut (void) = default;
+Small_defaultedIn_defaultedOut_defaultedOut::Small_defaultedIn_defaultedOut_defaultedOut (Small_defaultedIn_defaultedOut_defaultedOut &&rhs) = default;
+
+
+Small_defaultedIn_defaultedOut_defaultedOut Small_defaultedIn_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Small_defaultedIn_defaultedOut_defaultedOut> (Small_defaultedIn_defaultedOut_defaultedOut arg);
+/*** C++ class Large_defaultedIn_defaultedOut_defaultedOut ***/
+class Large_defaultedIn_defaultedOut_defaultedOut {
+public:
+  Large_defaultedIn_defaultedOut_defaultedOut (void);
+  Large_defaultedIn_defaultedOut_defaultedOut (const Large_defaultedIn_defaultedOut_defaultedOut &rhs) = default;
+  ~Large_defaultedIn_defaultedOut_defaultedOut (void);
+  Large_defaultedIn_defaultedOut_defaultedOut (Large_defaultedIn_defaultedOut_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedIn_defaultedOut_defaultedOut::Large_defaultedIn_defaultedOut_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_defaultedOut_defaultedOut::~Large_defaultedIn_defaultedOut_defaultedOut (void) = default;
+Large_defaultedIn_defaultedOut_defaultedOut::Large_defaultedIn_defaultedOut_defaultedOut (Large_defaultedIn_defaultedOut_defaultedOut &&rhs) = default;
+
+
+Large_defaultedIn_defaultedOut_defaultedOut Large_defaultedIn_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Large_defaultedIn_defaultedOut_defaultedOut> (Large_defaultedIn_defaultedOut_defaultedOut arg);
+/*** Class derived from Small_defaultedIn_defaultedOut_defaultedOut ***/
+class Derived_defaultedIn_defaultedOut_defaultedOut : public Small_defaultedIn_defaultedOut_defaultedOut {
+public:
+};
+
+Derived_defaultedIn_defaultedOut_defaultedOut Derived_defaultedIn_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Derived_defaultedIn_defaultedOut_defaultedOut> (Derived_defaultedIn_defaultedOut_defaultedOut arg);
+/*** Class that contains Small_defaultedIn_defaultedOut_defaultedOut ***/
+class Container_defaultedIn_defaultedOut_defaultedOut {
+public:
+  Small_defaultedIn_defaultedOut_defaultedOut item;
+};
+
+Container_defaultedIn_defaultedOut_defaultedOut Container_defaultedIn_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_defaultedOut_defaultedOut> (Container_defaultedIn_defaultedOut_defaultedOut arg);
+/*** C++ class Small_defaultedIn_defaultedOut_deleted ***/
+class Small_defaultedIn_defaultedOut_deleted {
+public:
+  Small_defaultedIn_defaultedOut_deleted (void);
+  Small_defaultedIn_defaultedOut_deleted (const Small_defaultedIn_defaultedOut_deleted &rhs) = default;
+  ~Small_defaultedIn_defaultedOut_deleted (void);
+  Small_defaultedIn_defaultedOut_deleted (Small_defaultedIn_defaultedOut_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_defaultedIn_defaultedOut_deleted::Small_defaultedIn_defaultedOut_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedIn_defaultedOut_deleted::~Small_defaultedIn_defaultedOut_deleted (void) = default;
+
+
+Small_defaultedIn_defaultedOut_deleted Small_defaultedIn_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Small_defaultedIn_defaultedOut_deleted> (Small_defaultedIn_defaultedOut_deleted arg);
+/*** C++ class Large_defaultedIn_defaultedOut_deleted ***/
+class Large_defaultedIn_defaultedOut_deleted {
+public:
+  Large_defaultedIn_defaultedOut_deleted (void);
+  Large_defaultedIn_defaultedOut_deleted (const Large_defaultedIn_defaultedOut_deleted &rhs) = default;
+  ~Large_defaultedIn_defaultedOut_deleted (void);
+  Large_defaultedIn_defaultedOut_deleted (Large_defaultedIn_defaultedOut_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_defaultedIn_defaultedOut_deleted::Large_defaultedIn_defaultedOut_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedIn_defaultedOut_deleted::~Large_defaultedIn_defaultedOut_deleted (void) = default;
+
+
+Large_defaultedIn_defaultedOut_deleted Large_defaultedIn_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Large_defaultedIn_defaultedOut_deleted> (Large_defaultedIn_defaultedOut_deleted arg);
+/*** Class derived from Small_defaultedIn_defaultedOut_deleted ***/
+class Derived_defaultedIn_defaultedOut_deleted : public Small_defaultedIn_defaultedOut_deleted {
+public:
+};
+
+Derived_defaultedIn_defaultedOut_deleted Derived_defaultedIn_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Derived_defaultedIn_defaultedOut_deleted> (Derived_defaultedIn_defaultedOut_deleted arg);
+/*** Class that contains Small_defaultedIn_defaultedOut_deleted ***/
+class Container_defaultedIn_defaultedOut_deleted {
+public:
+  Small_defaultedIn_defaultedOut_deleted item;
+};
+
+Container_defaultedIn_defaultedOut_deleted Container_defaultedIn_defaultedOut_deleted_var; /* global var */
+
+template int cbv_container<Container_defaultedIn_defaultedOut_deleted> (Container_defaultedIn_defaultedOut_deleted arg);
+/*** C++ class Small_defaultedOut_absent_absent ***/
+class Small_defaultedOut_absent_absent {
+public:
+  Small_defaultedOut_absent_absent (void);
+  Small_defaultedOut_absent_absent (const Small_defaultedOut_absent_absent &rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_absent_absent::Small_defaultedOut_absent_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_absent_absent::Small_defaultedOut_absent_absent (const Small_defaultedOut_absent_absent &rhs) = default;
+
+
+Small_defaultedOut_absent_absent Small_defaultedOut_absent_absent_var; /* global var */
+
+template int cbv<Small_defaultedOut_absent_absent> (Small_defaultedOut_absent_absent arg);
+/*** C++ class Large_defaultedOut_absent_absent ***/
+class Large_defaultedOut_absent_absent {
+public:
+  Large_defaultedOut_absent_absent (void);
+  Large_defaultedOut_absent_absent (const Large_defaultedOut_absent_absent &rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_absent_absent::Large_defaultedOut_absent_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_absent_absent::Large_defaultedOut_absent_absent (const Large_defaultedOut_absent_absent &rhs) = default;
+
+
+Large_defaultedOut_absent_absent Large_defaultedOut_absent_absent_var; /* global var */
+
+template int cbv<Large_defaultedOut_absent_absent> (Large_defaultedOut_absent_absent arg);
+/*** Class derived from Small_defaultedOut_absent_absent ***/
+class Derived_defaultedOut_absent_absent : public Small_defaultedOut_absent_absent {
+public:
+};
+
+Derived_defaultedOut_absent_absent Derived_defaultedOut_absent_absent_var; /* global var */
+
+template int cbv<Derived_defaultedOut_absent_absent> (Derived_defaultedOut_absent_absent arg);
+/*** Class that contains Small_defaultedOut_absent_absent ***/
+class Container_defaultedOut_absent_absent {
+public:
+  Small_defaultedOut_absent_absent item;
+};
+
+Container_defaultedOut_absent_absent Container_defaultedOut_absent_absent_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_absent_absent> (Container_defaultedOut_absent_absent arg);
+/*** C++ class Small_defaultedOut_absent_explicit ***/
+class Small_defaultedOut_absent_explicit {
+public:
+  Small_defaultedOut_absent_explicit (void);
+  Small_defaultedOut_absent_explicit (const Small_defaultedOut_absent_explicit &rhs);
+  Small_defaultedOut_absent_explicit (Small_defaultedOut_absent_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_absent_explicit::Small_defaultedOut_absent_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_absent_explicit::Small_defaultedOut_absent_explicit (const Small_defaultedOut_absent_explicit &rhs) = default;
+Small_defaultedOut_absent_explicit::Small_defaultedOut_absent_explicit (Small_defaultedOut_absent_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedOut_absent_explicit Small_defaultedOut_absent_explicit_var; /* global var */
+
+template int cbv<Small_defaultedOut_absent_explicit> (Small_defaultedOut_absent_explicit arg);
+/*** C++ class Large_defaultedOut_absent_explicit ***/
+class Large_defaultedOut_absent_explicit {
+public:
+  Large_defaultedOut_absent_explicit (void);
+  Large_defaultedOut_absent_explicit (const Large_defaultedOut_absent_explicit &rhs);
+  Large_defaultedOut_absent_explicit (Large_defaultedOut_absent_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_absent_explicit::Large_defaultedOut_absent_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_absent_explicit::Large_defaultedOut_absent_explicit (const Large_defaultedOut_absent_explicit &rhs) = default;
+Large_defaultedOut_absent_explicit::Large_defaultedOut_absent_explicit (Large_defaultedOut_absent_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedOut_absent_explicit Large_defaultedOut_absent_explicit_var; /* global var */
+
+template int cbv<Large_defaultedOut_absent_explicit> (Large_defaultedOut_absent_explicit arg);
+/*** Class derived from Small_defaultedOut_absent_explicit ***/
+class Derived_defaultedOut_absent_explicit : public Small_defaultedOut_absent_explicit {
+public:
+};
+
+Derived_defaultedOut_absent_explicit Derived_defaultedOut_absent_explicit_var; /* global var */
+
+template int cbv<Derived_defaultedOut_absent_explicit> (Derived_defaultedOut_absent_explicit arg);
+/*** Class that contains Small_defaultedOut_absent_explicit ***/
+class Container_defaultedOut_absent_explicit {
+public:
+  Small_defaultedOut_absent_explicit item;
+};
+
+Container_defaultedOut_absent_explicit Container_defaultedOut_absent_explicit_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_absent_explicit> (Container_defaultedOut_absent_explicit arg);
+/*** C++ class Small_defaultedOut_absent_defaultedIn ***/
+class Small_defaultedOut_absent_defaultedIn {
+public:
+  Small_defaultedOut_absent_defaultedIn (void);
+  Small_defaultedOut_absent_defaultedIn (const Small_defaultedOut_absent_defaultedIn &rhs);
+  Small_defaultedOut_absent_defaultedIn (Small_defaultedOut_absent_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedOut_absent_defaultedIn::Small_defaultedOut_absent_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_absent_defaultedIn::Small_defaultedOut_absent_defaultedIn (const Small_defaultedOut_absent_defaultedIn &rhs) = default;
+
+
+Small_defaultedOut_absent_defaultedIn Small_defaultedOut_absent_defaultedIn_var; /* global var */
+
+template int cbv<Small_defaultedOut_absent_defaultedIn> (Small_defaultedOut_absent_defaultedIn arg);
+/*** C++ class Large_defaultedOut_absent_defaultedIn ***/
+class Large_defaultedOut_absent_defaultedIn {
+public:
+  Large_defaultedOut_absent_defaultedIn (void);
+  Large_defaultedOut_absent_defaultedIn (const Large_defaultedOut_absent_defaultedIn &rhs);
+  Large_defaultedOut_absent_defaultedIn (Large_defaultedOut_absent_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedOut_absent_defaultedIn::Large_defaultedOut_absent_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_absent_defaultedIn::Large_defaultedOut_absent_defaultedIn (const Large_defaultedOut_absent_defaultedIn &rhs) = default;
+
+
+Large_defaultedOut_absent_defaultedIn Large_defaultedOut_absent_defaultedIn_var; /* global var */
+
+template int cbv<Large_defaultedOut_absent_defaultedIn> (Large_defaultedOut_absent_defaultedIn arg);
+/*** Class derived from Small_defaultedOut_absent_defaultedIn ***/
+class Derived_defaultedOut_absent_defaultedIn : public Small_defaultedOut_absent_defaultedIn {
+public:
+};
+
+Derived_defaultedOut_absent_defaultedIn Derived_defaultedOut_absent_defaultedIn_var; /* global var */
+
+template int cbv<Derived_defaultedOut_absent_defaultedIn> (Derived_defaultedOut_absent_defaultedIn arg);
+/*** Class that contains Small_defaultedOut_absent_defaultedIn ***/
+class Container_defaultedOut_absent_defaultedIn {
+public:
+  Small_defaultedOut_absent_defaultedIn item;
+};
+
+Container_defaultedOut_absent_defaultedIn Container_defaultedOut_absent_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_absent_defaultedIn> (Container_defaultedOut_absent_defaultedIn arg);
+/*** C++ class Small_defaultedOut_absent_defaultedOut ***/
+class Small_defaultedOut_absent_defaultedOut {
+public:
+  Small_defaultedOut_absent_defaultedOut (void);
+  Small_defaultedOut_absent_defaultedOut (const Small_defaultedOut_absent_defaultedOut &rhs);
+  Small_defaultedOut_absent_defaultedOut (Small_defaultedOut_absent_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_absent_defaultedOut::Small_defaultedOut_absent_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_absent_defaultedOut::Small_defaultedOut_absent_defaultedOut (const Small_defaultedOut_absent_defaultedOut &rhs) = default;
+Small_defaultedOut_absent_defaultedOut::Small_defaultedOut_absent_defaultedOut (Small_defaultedOut_absent_defaultedOut &&rhs) = default;
+
+
+Small_defaultedOut_absent_defaultedOut Small_defaultedOut_absent_defaultedOut_var; /* global var */
+
+template int cbv<Small_defaultedOut_absent_defaultedOut> (Small_defaultedOut_absent_defaultedOut arg);
+/*** C++ class Large_defaultedOut_absent_defaultedOut ***/
+class Large_defaultedOut_absent_defaultedOut {
+public:
+  Large_defaultedOut_absent_defaultedOut (void);
+  Large_defaultedOut_absent_defaultedOut (const Large_defaultedOut_absent_defaultedOut &rhs);
+  Large_defaultedOut_absent_defaultedOut (Large_defaultedOut_absent_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_absent_defaultedOut::Large_defaultedOut_absent_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_absent_defaultedOut::Large_defaultedOut_absent_defaultedOut (const Large_defaultedOut_absent_defaultedOut &rhs) = default;
+Large_defaultedOut_absent_defaultedOut::Large_defaultedOut_absent_defaultedOut (Large_defaultedOut_absent_defaultedOut &&rhs) = default;
+
+
+Large_defaultedOut_absent_defaultedOut Large_defaultedOut_absent_defaultedOut_var; /* global var */
+
+template int cbv<Large_defaultedOut_absent_defaultedOut> (Large_defaultedOut_absent_defaultedOut arg);
+/*** Class derived from Small_defaultedOut_absent_defaultedOut ***/
+class Derived_defaultedOut_absent_defaultedOut : public Small_defaultedOut_absent_defaultedOut {
+public:
+};
+
+Derived_defaultedOut_absent_defaultedOut Derived_defaultedOut_absent_defaultedOut_var; /* global var */
+
+template int cbv<Derived_defaultedOut_absent_defaultedOut> (Derived_defaultedOut_absent_defaultedOut arg);
+/*** Class that contains Small_defaultedOut_absent_defaultedOut ***/
+class Container_defaultedOut_absent_defaultedOut {
+public:
+  Small_defaultedOut_absent_defaultedOut item;
+};
+
+Container_defaultedOut_absent_defaultedOut Container_defaultedOut_absent_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_absent_defaultedOut> (Container_defaultedOut_absent_defaultedOut arg);
+/*** C++ class Small_defaultedOut_absent_deleted ***/
+class Small_defaultedOut_absent_deleted {
+public:
+  Small_defaultedOut_absent_deleted (void);
+  Small_defaultedOut_absent_deleted (const Small_defaultedOut_absent_deleted &rhs);
+  Small_defaultedOut_absent_deleted (Small_defaultedOut_absent_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_defaultedOut_absent_deleted::Small_defaultedOut_absent_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_absent_deleted::Small_defaultedOut_absent_deleted (const Small_defaultedOut_absent_deleted &rhs) = default;
+
+
+Small_defaultedOut_absent_deleted Small_defaultedOut_absent_deleted_var; /* global var */
+
+template int cbv<Small_defaultedOut_absent_deleted> (Small_defaultedOut_absent_deleted arg);
+/*** C++ class Large_defaultedOut_absent_deleted ***/
+class Large_defaultedOut_absent_deleted {
+public:
+  Large_defaultedOut_absent_deleted (void);
+  Large_defaultedOut_absent_deleted (const Large_defaultedOut_absent_deleted &rhs);
+  Large_defaultedOut_absent_deleted (Large_defaultedOut_absent_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_defaultedOut_absent_deleted::Large_defaultedOut_absent_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_absent_deleted::Large_defaultedOut_absent_deleted (const Large_defaultedOut_absent_deleted &rhs) = default;
+
+
+Large_defaultedOut_absent_deleted Large_defaultedOut_absent_deleted_var; /* global var */
+
+template int cbv<Large_defaultedOut_absent_deleted> (Large_defaultedOut_absent_deleted arg);
+/*** Class derived from Small_defaultedOut_absent_deleted ***/
+class Derived_defaultedOut_absent_deleted : public Small_defaultedOut_absent_deleted {
+public:
+};
+
+Derived_defaultedOut_absent_deleted Derived_defaultedOut_absent_deleted_var; /* global var */
+
+template int cbv<Derived_defaultedOut_absent_deleted> (Derived_defaultedOut_absent_deleted arg);
+/*** Class that contains Small_defaultedOut_absent_deleted ***/
+class Container_defaultedOut_absent_deleted {
+public:
+  Small_defaultedOut_absent_deleted item;
+};
+
+Container_defaultedOut_absent_deleted Container_defaultedOut_absent_deleted_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_absent_deleted> (Container_defaultedOut_absent_deleted arg);
+/*** C++ class Small_defaultedOut_explicit_absent ***/
+class Small_defaultedOut_explicit_absent {
+public:
+  Small_defaultedOut_explicit_absent (void);
+  Small_defaultedOut_explicit_absent (const Small_defaultedOut_explicit_absent &rhs);
+  ~Small_defaultedOut_explicit_absent (void);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_explicit_absent::Small_defaultedOut_explicit_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_explicit_absent::Small_defaultedOut_explicit_absent (const Small_defaultedOut_explicit_absent &rhs) = default;
+Small_defaultedOut_explicit_absent::~Small_defaultedOut_explicit_absent (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedOut_explicit_absent Small_defaultedOut_explicit_absent_var; /* global var */
+
+template int cbv<Small_defaultedOut_explicit_absent> (Small_defaultedOut_explicit_absent arg);
+/*** C++ class Large_defaultedOut_explicit_absent ***/
+class Large_defaultedOut_explicit_absent {
+public:
+  Large_defaultedOut_explicit_absent (void);
+  Large_defaultedOut_explicit_absent (const Large_defaultedOut_explicit_absent &rhs);
+  ~Large_defaultedOut_explicit_absent (void);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_explicit_absent::Large_defaultedOut_explicit_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_explicit_absent::Large_defaultedOut_explicit_absent (const Large_defaultedOut_explicit_absent &rhs) = default;
+Large_defaultedOut_explicit_absent::~Large_defaultedOut_explicit_absent (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedOut_explicit_absent Large_defaultedOut_explicit_absent_var; /* global var */
+
+template int cbv<Large_defaultedOut_explicit_absent> (Large_defaultedOut_explicit_absent arg);
+/*** Class derived from Small_defaultedOut_explicit_absent ***/
+class Derived_defaultedOut_explicit_absent : public Small_defaultedOut_explicit_absent {
+public:
+};
+
+Derived_defaultedOut_explicit_absent Derived_defaultedOut_explicit_absent_var; /* global var */
+
+template int cbv<Derived_defaultedOut_explicit_absent> (Derived_defaultedOut_explicit_absent arg);
+/*** Class that contains Small_defaultedOut_explicit_absent ***/
+class Container_defaultedOut_explicit_absent {
+public:
+  Small_defaultedOut_explicit_absent item;
+};
+
+Container_defaultedOut_explicit_absent Container_defaultedOut_explicit_absent_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_explicit_absent> (Container_defaultedOut_explicit_absent arg);
+/*** C++ class Small_defaultedOut_explicit_explicit ***/
+class Small_defaultedOut_explicit_explicit {
+public:
+  Small_defaultedOut_explicit_explicit (void);
+  Small_defaultedOut_explicit_explicit (const Small_defaultedOut_explicit_explicit &rhs);
+  ~Small_defaultedOut_explicit_explicit (void);
+  Small_defaultedOut_explicit_explicit (Small_defaultedOut_explicit_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_explicit_explicit::Small_defaultedOut_explicit_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_explicit_explicit::Small_defaultedOut_explicit_explicit (const Small_defaultedOut_explicit_explicit &rhs) = default;
+Small_defaultedOut_explicit_explicit::~Small_defaultedOut_explicit_explicit (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_defaultedOut_explicit_explicit::Small_defaultedOut_explicit_explicit (Small_defaultedOut_explicit_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedOut_explicit_explicit Small_defaultedOut_explicit_explicit_var; /* global var */
+
+template int cbv<Small_defaultedOut_explicit_explicit> (Small_defaultedOut_explicit_explicit arg);
+/*** C++ class Large_defaultedOut_explicit_explicit ***/
+class Large_defaultedOut_explicit_explicit {
+public:
+  Large_defaultedOut_explicit_explicit (void);
+  Large_defaultedOut_explicit_explicit (const Large_defaultedOut_explicit_explicit &rhs);
+  ~Large_defaultedOut_explicit_explicit (void);
+  Large_defaultedOut_explicit_explicit (Large_defaultedOut_explicit_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_explicit_explicit::Large_defaultedOut_explicit_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_explicit_explicit::Large_defaultedOut_explicit_explicit (const Large_defaultedOut_explicit_explicit &rhs) = default;
+Large_defaultedOut_explicit_explicit::~Large_defaultedOut_explicit_explicit (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_defaultedOut_explicit_explicit::Large_defaultedOut_explicit_explicit (Large_defaultedOut_explicit_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedOut_explicit_explicit Large_defaultedOut_explicit_explicit_var; /* global var */
+
+template int cbv<Large_defaultedOut_explicit_explicit> (Large_defaultedOut_explicit_explicit arg);
+/*** Class derived from Small_defaultedOut_explicit_explicit ***/
+class Derived_defaultedOut_explicit_explicit : public Small_defaultedOut_explicit_explicit {
+public:
+};
+
+Derived_defaultedOut_explicit_explicit Derived_defaultedOut_explicit_explicit_var; /* global var */
+
+template int cbv<Derived_defaultedOut_explicit_explicit> (Derived_defaultedOut_explicit_explicit arg);
+/*** Class that contains Small_defaultedOut_explicit_explicit ***/
+class Container_defaultedOut_explicit_explicit {
+public:
+  Small_defaultedOut_explicit_explicit item;
+};
+
+Container_defaultedOut_explicit_explicit Container_defaultedOut_explicit_explicit_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_explicit_explicit> (Container_defaultedOut_explicit_explicit arg);
+/*** C++ class Small_defaultedOut_explicit_defaultedIn ***/
+class Small_defaultedOut_explicit_defaultedIn {
+public:
+  Small_defaultedOut_explicit_defaultedIn (void);
+  Small_defaultedOut_explicit_defaultedIn (const Small_defaultedOut_explicit_defaultedIn &rhs);
+  ~Small_defaultedOut_explicit_defaultedIn (void);
+  Small_defaultedOut_explicit_defaultedIn (Small_defaultedOut_explicit_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedOut_explicit_defaultedIn::Small_defaultedOut_explicit_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_explicit_defaultedIn::Small_defaultedOut_explicit_defaultedIn (const Small_defaultedOut_explicit_defaultedIn &rhs) = default;
+Small_defaultedOut_explicit_defaultedIn::~Small_defaultedOut_explicit_defaultedIn (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedOut_explicit_defaultedIn Small_defaultedOut_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Small_defaultedOut_explicit_defaultedIn> (Small_defaultedOut_explicit_defaultedIn arg);
+/*** C++ class Large_defaultedOut_explicit_defaultedIn ***/
+class Large_defaultedOut_explicit_defaultedIn {
+public:
+  Large_defaultedOut_explicit_defaultedIn (void);
+  Large_defaultedOut_explicit_defaultedIn (const Large_defaultedOut_explicit_defaultedIn &rhs);
+  ~Large_defaultedOut_explicit_defaultedIn (void);
+  Large_defaultedOut_explicit_defaultedIn (Large_defaultedOut_explicit_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedOut_explicit_defaultedIn::Large_defaultedOut_explicit_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_explicit_defaultedIn::Large_defaultedOut_explicit_defaultedIn (const Large_defaultedOut_explicit_defaultedIn &rhs) = default;
+Large_defaultedOut_explicit_defaultedIn::~Large_defaultedOut_explicit_defaultedIn (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedOut_explicit_defaultedIn Large_defaultedOut_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Large_defaultedOut_explicit_defaultedIn> (Large_defaultedOut_explicit_defaultedIn arg);
+/*** Class derived from Small_defaultedOut_explicit_defaultedIn ***/
+class Derived_defaultedOut_explicit_defaultedIn : public Small_defaultedOut_explicit_defaultedIn {
+public:
+};
+
+Derived_defaultedOut_explicit_defaultedIn Derived_defaultedOut_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Derived_defaultedOut_explicit_defaultedIn> (Derived_defaultedOut_explicit_defaultedIn arg);
+/*** Class that contains Small_defaultedOut_explicit_defaultedIn ***/
+class Container_defaultedOut_explicit_defaultedIn {
+public:
+  Small_defaultedOut_explicit_defaultedIn item;
+};
+
+Container_defaultedOut_explicit_defaultedIn Container_defaultedOut_explicit_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_explicit_defaultedIn> (Container_defaultedOut_explicit_defaultedIn arg);
+/*** C++ class Small_defaultedOut_explicit_defaultedOut ***/
+class Small_defaultedOut_explicit_defaultedOut {
+public:
+  Small_defaultedOut_explicit_defaultedOut (void);
+  Small_defaultedOut_explicit_defaultedOut (const Small_defaultedOut_explicit_defaultedOut &rhs);
+  ~Small_defaultedOut_explicit_defaultedOut (void);
+  Small_defaultedOut_explicit_defaultedOut (Small_defaultedOut_explicit_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_explicit_defaultedOut::Small_defaultedOut_explicit_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_explicit_defaultedOut::Small_defaultedOut_explicit_defaultedOut (const Small_defaultedOut_explicit_defaultedOut &rhs) = default;
+Small_defaultedOut_explicit_defaultedOut::~Small_defaultedOut_explicit_defaultedOut (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_defaultedOut_explicit_defaultedOut::Small_defaultedOut_explicit_defaultedOut (Small_defaultedOut_explicit_defaultedOut &&rhs) = default;
+
+
+Small_defaultedOut_explicit_defaultedOut Small_defaultedOut_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Small_defaultedOut_explicit_defaultedOut> (Small_defaultedOut_explicit_defaultedOut arg);
+/*** C++ class Large_defaultedOut_explicit_defaultedOut ***/
+class Large_defaultedOut_explicit_defaultedOut {
+public:
+  Large_defaultedOut_explicit_defaultedOut (void);
+  Large_defaultedOut_explicit_defaultedOut (const Large_defaultedOut_explicit_defaultedOut &rhs);
+  ~Large_defaultedOut_explicit_defaultedOut (void);
+  Large_defaultedOut_explicit_defaultedOut (Large_defaultedOut_explicit_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_explicit_defaultedOut::Large_defaultedOut_explicit_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_explicit_defaultedOut::Large_defaultedOut_explicit_defaultedOut (const Large_defaultedOut_explicit_defaultedOut &rhs) = default;
+Large_defaultedOut_explicit_defaultedOut::~Large_defaultedOut_explicit_defaultedOut (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_defaultedOut_explicit_defaultedOut::Large_defaultedOut_explicit_defaultedOut (Large_defaultedOut_explicit_defaultedOut &&rhs) = default;
+
+
+Large_defaultedOut_explicit_defaultedOut Large_defaultedOut_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Large_defaultedOut_explicit_defaultedOut> (Large_defaultedOut_explicit_defaultedOut arg);
+/*** Class derived from Small_defaultedOut_explicit_defaultedOut ***/
+class Derived_defaultedOut_explicit_defaultedOut : public Small_defaultedOut_explicit_defaultedOut {
+public:
+};
+
+Derived_defaultedOut_explicit_defaultedOut Derived_defaultedOut_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Derived_defaultedOut_explicit_defaultedOut> (Derived_defaultedOut_explicit_defaultedOut arg);
+/*** Class that contains Small_defaultedOut_explicit_defaultedOut ***/
+class Container_defaultedOut_explicit_defaultedOut {
+public:
+  Small_defaultedOut_explicit_defaultedOut item;
+};
+
+Container_defaultedOut_explicit_defaultedOut Container_defaultedOut_explicit_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_explicit_defaultedOut> (Container_defaultedOut_explicit_defaultedOut arg);
+/*** C++ class Small_defaultedOut_explicit_deleted ***/
+class Small_defaultedOut_explicit_deleted {
+public:
+  Small_defaultedOut_explicit_deleted (void);
+  Small_defaultedOut_explicit_deleted (const Small_defaultedOut_explicit_deleted &rhs);
+  ~Small_defaultedOut_explicit_deleted (void);
+  Small_defaultedOut_explicit_deleted (Small_defaultedOut_explicit_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_defaultedOut_explicit_deleted::Small_defaultedOut_explicit_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_explicit_deleted::Small_defaultedOut_explicit_deleted (const Small_defaultedOut_explicit_deleted &rhs) = default;
+Small_defaultedOut_explicit_deleted::~Small_defaultedOut_explicit_deleted (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedOut_explicit_deleted Small_defaultedOut_explicit_deleted_var; /* global var */
+
+template int cbv<Small_defaultedOut_explicit_deleted> (Small_defaultedOut_explicit_deleted arg);
+/*** C++ class Large_defaultedOut_explicit_deleted ***/
+class Large_defaultedOut_explicit_deleted {
+public:
+  Large_defaultedOut_explicit_deleted (void);
+  Large_defaultedOut_explicit_deleted (const Large_defaultedOut_explicit_deleted &rhs);
+  ~Large_defaultedOut_explicit_deleted (void);
+  Large_defaultedOut_explicit_deleted (Large_defaultedOut_explicit_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_defaultedOut_explicit_deleted::Large_defaultedOut_explicit_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_explicit_deleted::Large_defaultedOut_explicit_deleted (const Large_defaultedOut_explicit_deleted &rhs) = default;
+Large_defaultedOut_explicit_deleted::~Large_defaultedOut_explicit_deleted (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedOut_explicit_deleted Large_defaultedOut_explicit_deleted_var; /* global var */
+
+template int cbv<Large_defaultedOut_explicit_deleted> (Large_defaultedOut_explicit_deleted arg);
+/*** Class derived from Small_defaultedOut_explicit_deleted ***/
+class Derived_defaultedOut_explicit_deleted : public Small_defaultedOut_explicit_deleted {
+public:
+};
+
+Derived_defaultedOut_explicit_deleted Derived_defaultedOut_explicit_deleted_var; /* global var */
+
+template int cbv<Derived_defaultedOut_explicit_deleted> (Derived_defaultedOut_explicit_deleted arg);
+/*** Class that contains Small_defaultedOut_explicit_deleted ***/
+class Container_defaultedOut_explicit_deleted {
+public:
+  Small_defaultedOut_explicit_deleted item;
+};
+
+Container_defaultedOut_explicit_deleted Container_defaultedOut_explicit_deleted_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_explicit_deleted> (Container_defaultedOut_explicit_deleted arg);
+/*** C++ class Small_defaultedOut_defaultedIn_absent ***/
+class Small_defaultedOut_defaultedIn_absent {
+public:
+  Small_defaultedOut_defaultedIn_absent (void);
+  Small_defaultedOut_defaultedIn_absent (const Small_defaultedOut_defaultedIn_absent &rhs);
+  ~Small_defaultedOut_defaultedIn_absent (void) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedOut_defaultedIn_absent::Small_defaultedOut_defaultedIn_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_defaultedIn_absent::Small_defaultedOut_defaultedIn_absent (const Small_defaultedOut_defaultedIn_absent &rhs) = default;
+
+
+Small_defaultedOut_defaultedIn_absent Small_defaultedOut_defaultedIn_absent_var; /* global var */
+
+template int cbv<Small_defaultedOut_defaultedIn_absent> (Small_defaultedOut_defaultedIn_absent arg);
+/*** C++ class Large_defaultedOut_defaultedIn_absent ***/
+class Large_defaultedOut_defaultedIn_absent {
+public:
+  Large_defaultedOut_defaultedIn_absent (void);
+  Large_defaultedOut_defaultedIn_absent (const Large_defaultedOut_defaultedIn_absent &rhs);
+  ~Large_defaultedOut_defaultedIn_absent (void) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedOut_defaultedIn_absent::Large_defaultedOut_defaultedIn_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_defaultedIn_absent::Large_defaultedOut_defaultedIn_absent (const Large_defaultedOut_defaultedIn_absent &rhs) = default;
+
+
+Large_defaultedOut_defaultedIn_absent Large_defaultedOut_defaultedIn_absent_var; /* global var */
+
+template int cbv<Large_defaultedOut_defaultedIn_absent> (Large_defaultedOut_defaultedIn_absent arg);
+/*** Class derived from Small_defaultedOut_defaultedIn_absent ***/
+class Derived_defaultedOut_defaultedIn_absent : public Small_defaultedOut_defaultedIn_absent {
+public:
+};
+
+Derived_defaultedOut_defaultedIn_absent Derived_defaultedOut_defaultedIn_absent_var; /* global var */
+
+template int cbv<Derived_defaultedOut_defaultedIn_absent> (Derived_defaultedOut_defaultedIn_absent arg);
+/*** Class that contains Small_defaultedOut_defaultedIn_absent ***/
+class Container_defaultedOut_defaultedIn_absent {
+public:
+  Small_defaultedOut_defaultedIn_absent item;
+};
+
+Container_defaultedOut_defaultedIn_absent Container_defaultedOut_defaultedIn_absent_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_defaultedIn_absent> (Container_defaultedOut_defaultedIn_absent arg);
+/*** C++ class Small_defaultedOut_defaultedIn_explicit ***/
+class Small_defaultedOut_defaultedIn_explicit {
+public:
+  Small_defaultedOut_defaultedIn_explicit (void);
+  Small_defaultedOut_defaultedIn_explicit (const Small_defaultedOut_defaultedIn_explicit &rhs);
+  ~Small_defaultedOut_defaultedIn_explicit (void) = default;
+  Small_defaultedOut_defaultedIn_explicit (Small_defaultedOut_defaultedIn_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_defaultedIn_explicit::Small_defaultedOut_defaultedIn_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_defaultedIn_explicit::Small_defaultedOut_defaultedIn_explicit (const Small_defaultedOut_defaultedIn_explicit &rhs) = default;
+Small_defaultedOut_defaultedIn_explicit::Small_defaultedOut_defaultedIn_explicit (Small_defaultedOut_defaultedIn_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedOut_defaultedIn_explicit Small_defaultedOut_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Small_defaultedOut_defaultedIn_explicit> (Small_defaultedOut_defaultedIn_explicit arg);
+/*** C++ class Large_defaultedOut_defaultedIn_explicit ***/
+class Large_defaultedOut_defaultedIn_explicit {
+public:
+  Large_defaultedOut_defaultedIn_explicit (void);
+  Large_defaultedOut_defaultedIn_explicit (const Large_defaultedOut_defaultedIn_explicit &rhs);
+  ~Large_defaultedOut_defaultedIn_explicit (void) = default;
+  Large_defaultedOut_defaultedIn_explicit (Large_defaultedOut_defaultedIn_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_defaultedIn_explicit::Large_defaultedOut_defaultedIn_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_defaultedIn_explicit::Large_defaultedOut_defaultedIn_explicit (const Large_defaultedOut_defaultedIn_explicit &rhs) = default;
+Large_defaultedOut_defaultedIn_explicit::Large_defaultedOut_defaultedIn_explicit (Large_defaultedOut_defaultedIn_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedOut_defaultedIn_explicit Large_defaultedOut_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Large_defaultedOut_defaultedIn_explicit> (Large_defaultedOut_defaultedIn_explicit arg);
+/*** Class derived from Small_defaultedOut_defaultedIn_explicit ***/
+class Derived_defaultedOut_defaultedIn_explicit : public Small_defaultedOut_defaultedIn_explicit {
+public:
+};
+
+Derived_defaultedOut_defaultedIn_explicit Derived_defaultedOut_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Derived_defaultedOut_defaultedIn_explicit> (Derived_defaultedOut_defaultedIn_explicit arg);
+/*** Class that contains Small_defaultedOut_defaultedIn_explicit ***/
+class Container_defaultedOut_defaultedIn_explicit {
+public:
+  Small_defaultedOut_defaultedIn_explicit item;
+};
+
+Container_defaultedOut_defaultedIn_explicit Container_defaultedOut_defaultedIn_explicit_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_defaultedIn_explicit> (Container_defaultedOut_defaultedIn_explicit arg);
+/*** C++ class Small_defaultedOut_defaultedIn_defaultedIn ***/
+class Small_defaultedOut_defaultedIn_defaultedIn {
+public:
+  Small_defaultedOut_defaultedIn_defaultedIn (void);
+  Small_defaultedOut_defaultedIn_defaultedIn (const Small_defaultedOut_defaultedIn_defaultedIn &rhs);
+  ~Small_defaultedOut_defaultedIn_defaultedIn (void) = default;
+  Small_defaultedOut_defaultedIn_defaultedIn (Small_defaultedOut_defaultedIn_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedOut_defaultedIn_defaultedIn::Small_defaultedOut_defaultedIn_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_defaultedIn_defaultedIn::Small_defaultedOut_defaultedIn_defaultedIn (const Small_defaultedOut_defaultedIn_defaultedIn &rhs) = default;
+
+
+Small_defaultedOut_defaultedIn_defaultedIn Small_defaultedOut_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Small_defaultedOut_defaultedIn_defaultedIn> (Small_defaultedOut_defaultedIn_defaultedIn arg);
+/*** C++ class Large_defaultedOut_defaultedIn_defaultedIn ***/
+class Large_defaultedOut_defaultedIn_defaultedIn {
+public:
+  Large_defaultedOut_defaultedIn_defaultedIn (void);
+  Large_defaultedOut_defaultedIn_defaultedIn (const Large_defaultedOut_defaultedIn_defaultedIn &rhs);
+  ~Large_defaultedOut_defaultedIn_defaultedIn (void) = default;
+  Large_defaultedOut_defaultedIn_defaultedIn (Large_defaultedOut_defaultedIn_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedOut_defaultedIn_defaultedIn::Large_defaultedOut_defaultedIn_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_defaultedIn_defaultedIn::Large_defaultedOut_defaultedIn_defaultedIn (const Large_defaultedOut_defaultedIn_defaultedIn &rhs) = default;
+
+
+Large_defaultedOut_defaultedIn_defaultedIn Large_defaultedOut_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Large_defaultedOut_defaultedIn_defaultedIn> (Large_defaultedOut_defaultedIn_defaultedIn arg);
+/*** Class derived from Small_defaultedOut_defaultedIn_defaultedIn ***/
+class Derived_defaultedOut_defaultedIn_defaultedIn : public Small_defaultedOut_defaultedIn_defaultedIn {
+public:
+};
+
+Derived_defaultedOut_defaultedIn_defaultedIn Derived_defaultedOut_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Derived_defaultedOut_defaultedIn_defaultedIn> (Derived_defaultedOut_defaultedIn_defaultedIn arg);
+/*** Class that contains Small_defaultedOut_defaultedIn_defaultedIn ***/
+class Container_defaultedOut_defaultedIn_defaultedIn {
+public:
+  Small_defaultedOut_defaultedIn_defaultedIn item;
+};
+
+Container_defaultedOut_defaultedIn_defaultedIn Container_defaultedOut_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_defaultedIn_defaultedIn> (Container_defaultedOut_defaultedIn_defaultedIn arg);
+/*** C++ class Small_defaultedOut_defaultedIn_defaultedOut ***/
+class Small_defaultedOut_defaultedIn_defaultedOut {
+public:
+  Small_defaultedOut_defaultedIn_defaultedOut (void);
+  Small_defaultedOut_defaultedIn_defaultedOut (const Small_defaultedOut_defaultedIn_defaultedOut &rhs);
+  ~Small_defaultedOut_defaultedIn_defaultedOut (void) = default;
+  Small_defaultedOut_defaultedIn_defaultedOut (Small_defaultedOut_defaultedIn_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_defaultedIn_defaultedOut::Small_defaultedOut_defaultedIn_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_defaultedIn_defaultedOut::Small_defaultedOut_defaultedIn_defaultedOut (const Small_defaultedOut_defaultedIn_defaultedOut &rhs) = default;
+Small_defaultedOut_defaultedIn_defaultedOut::Small_defaultedOut_defaultedIn_defaultedOut (Small_defaultedOut_defaultedIn_defaultedOut &&rhs) = default;
+
+
+Small_defaultedOut_defaultedIn_defaultedOut Small_defaultedOut_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Small_defaultedOut_defaultedIn_defaultedOut> (Small_defaultedOut_defaultedIn_defaultedOut arg);
+/*** C++ class Large_defaultedOut_defaultedIn_defaultedOut ***/
+class Large_defaultedOut_defaultedIn_defaultedOut {
+public:
+  Large_defaultedOut_defaultedIn_defaultedOut (void);
+  Large_defaultedOut_defaultedIn_defaultedOut (const Large_defaultedOut_defaultedIn_defaultedOut &rhs);
+  ~Large_defaultedOut_defaultedIn_defaultedOut (void) = default;
+  Large_defaultedOut_defaultedIn_defaultedOut (Large_defaultedOut_defaultedIn_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_defaultedIn_defaultedOut::Large_defaultedOut_defaultedIn_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_defaultedIn_defaultedOut::Large_defaultedOut_defaultedIn_defaultedOut (const Large_defaultedOut_defaultedIn_defaultedOut &rhs) = default;
+Large_defaultedOut_defaultedIn_defaultedOut::Large_defaultedOut_defaultedIn_defaultedOut (Large_defaultedOut_defaultedIn_defaultedOut &&rhs) = default;
+
+
+Large_defaultedOut_defaultedIn_defaultedOut Large_defaultedOut_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Large_defaultedOut_defaultedIn_defaultedOut> (Large_defaultedOut_defaultedIn_defaultedOut arg);
+/*** Class derived from Small_defaultedOut_defaultedIn_defaultedOut ***/
+class Derived_defaultedOut_defaultedIn_defaultedOut : public Small_defaultedOut_defaultedIn_defaultedOut {
+public:
+};
+
+Derived_defaultedOut_defaultedIn_defaultedOut Derived_defaultedOut_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Derived_defaultedOut_defaultedIn_defaultedOut> (Derived_defaultedOut_defaultedIn_defaultedOut arg);
+/*** Class that contains Small_defaultedOut_defaultedIn_defaultedOut ***/
+class Container_defaultedOut_defaultedIn_defaultedOut {
+public:
+  Small_defaultedOut_defaultedIn_defaultedOut item;
+};
+
+Container_defaultedOut_defaultedIn_defaultedOut Container_defaultedOut_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_defaultedIn_defaultedOut> (Container_defaultedOut_defaultedIn_defaultedOut arg);
+/*** C++ class Small_defaultedOut_defaultedIn_deleted ***/
+class Small_defaultedOut_defaultedIn_deleted {
+public:
+  Small_defaultedOut_defaultedIn_deleted (void);
+  Small_defaultedOut_defaultedIn_deleted (const Small_defaultedOut_defaultedIn_deleted &rhs);
+  ~Small_defaultedOut_defaultedIn_deleted (void) = default;
+  Small_defaultedOut_defaultedIn_deleted (Small_defaultedOut_defaultedIn_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_defaultedOut_defaultedIn_deleted::Small_defaultedOut_defaultedIn_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_defaultedIn_deleted::Small_defaultedOut_defaultedIn_deleted (const Small_defaultedOut_defaultedIn_deleted &rhs) = default;
+
+
+Small_defaultedOut_defaultedIn_deleted Small_defaultedOut_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Small_defaultedOut_defaultedIn_deleted> (Small_defaultedOut_defaultedIn_deleted arg);
+/*** C++ class Large_defaultedOut_defaultedIn_deleted ***/
+class Large_defaultedOut_defaultedIn_deleted {
+public:
+  Large_defaultedOut_defaultedIn_deleted (void);
+  Large_defaultedOut_defaultedIn_deleted (const Large_defaultedOut_defaultedIn_deleted &rhs);
+  ~Large_defaultedOut_defaultedIn_deleted (void) = default;
+  Large_defaultedOut_defaultedIn_deleted (Large_defaultedOut_defaultedIn_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_defaultedOut_defaultedIn_deleted::Large_defaultedOut_defaultedIn_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_defaultedIn_deleted::Large_defaultedOut_defaultedIn_deleted (const Large_defaultedOut_defaultedIn_deleted &rhs) = default;
+
+
+Large_defaultedOut_defaultedIn_deleted Large_defaultedOut_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Large_defaultedOut_defaultedIn_deleted> (Large_defaultedOut_defaultedIn_deleted arg);
+/*** Class derived from Small_defaultedOut_defaultedIn_deleted ***/
+class Derived_defaultedOut_defaultedIn_deleted : public Small_defaultedOut_defaultedIn_deleted {
+public:
+};
+
+Derived_defaultedOut_defaultedIn_deleted Derived_defaultedOut_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Derived_defaultedOut_defaultedIn_deleted> (Derived_defaultedOut_defaultedIn_deleted arg);
+/*** Class that contains Small_defaultedOut_defaultedIn_deleted ***/
+class Container_defaultedOut_defaultedIn_deleted {
+public:
+  Small_defaultedOut_defaultedIn_deleted item;
+};
+
+Container_defaultedOut_defaultedIn_deleted Container_defaultedOut_defaultedIn_deleted_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_defaultedIn_deleted> (Container_defaultedOut_defaultedIn_deleted arg);
+/*** C++ class Small_defaultedOut_defaultedOut_absent ***/
+class Small_defaultedOut_defaultedOut_absent {
+public:
+  Small_defaultedOut_defaultedOut_absent (void);
+  Small_defaultedOut_defaultedOut_absent (const Small_defaultedOut_defaultedOut_absent &rhs);
+  ~Small_defaultedOut_defaultedOut_absent (void);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_defaultedOut_absent::Small_defaultedOut_defaultedOut_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_defaultedOut_absent::Small_defaultedOut_defaultedOut_absent (const Small_defaultedOut_defaultedOut_absent &rhs) = default;
+Small_defaultedOut_defaultedOut_absent::~Small_defaultedOut_defaultedOut_absent (void) = default;
+
+
+Small_defaultedOut_defaultedOut_absent Small_defaultedOut_defaultedOut_absent_var; /* global var */
+
+template int cbv<Small_defaultedOut_defaultedOut_absent> (Small_defaultedOut_defaultedOut_absent arg);
+/*** C++ class Large_defaultedOut_defaultedOut_absent ***/
+class Large_defaultedOut_defaultedOut_absent {
+public:
+  Large_defaultedOut_defaultedOut_absent (void);
+  Large_defaultedOut_defaultedOut_absent (const Large_defaultedOut_defaultedOut_absent &rhs);
+  ~Large_defaultedOut_defaultedOut_absent (void);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_defaultedOut_absent::Large_defaultedOut_defaultedOut_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_defaultedOut_absent::Large_defaultedOut_defaultedOut_absent (const Large_defaultedOut_defaultedOut_absent &rhs) = default;
+Large_defaultedOut_defaultedOut_absent::~Large_defaultedOut_defaultedOut_absent (void) = default;
+
+
+Large_defaultedOut_defaultedOut_absent Large_defaultedOut_defaultedOut_absent_var; /* global var */
+
+template int cbv<Large_defaultedOut_defaultedOut_absent> (Large_defaultedOut_defaultedOut_absent arg);
+/*** Class derived from Small_defaultedOut_defaultedOut_absent ***/
+class Derived_defaultedOut_defaultedOut_absent : public Small_defaultedOut_defaultedOut_absent {
+public:
+};
+
+Derived_defaultedOut_defaultedOut_absent Derived_defaultedOut_defaultedOut_absent_var; /* global var */
+
+template int cbv<Derived_defaultedOut_defaultedOut_absent> (Derived_defaultedOut_defaultedOut_absent arg);
+/*** Class that contains Small_defaultedOut_defaultedOut_absent ***/
+class Container_defaultedOut_defaultedOut_absent {
+public:
+  Small_defaultedOut_defaultedOut_absent item;
+};
+
+Container_defaultedOut_defaultedOut_absent Container_defaultedOut_defaultedOut_absent_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_defaultedOut_absent> (Container_defaultedOut_defaultedOut_absent arg);
+/*** C++ class Small_defaultedOut_defaultedOut_explicit ***/
+class Small_defaultedOut_defaultedOut_explicit {
+public:
+  Small_defaultedOut_defaultedOut_explicit (void);
+  Small_defaultedOut_defaultedOut_explicit (const Small_defaultedOut_defaultedOut_explicit &rhs);
+  ~Small_defaultedOut_defaultedOut_explicit (void);
+  Small_defaultedOut_defaultedOut_explicit (Small_defaultedOut_defaultedOut_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_defaultedOut_explicit::Small_defaultedOut_defaultedOut_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_defaultedOut_explicit::Small_defaultedOut_defaultedOut_explicit (const Small_defaultedOut_defaultedOut_explicit &rhs) = default;
+Small_defaultedOut_defaultedOut_explicit::~Small_defaultedOut_defaultedOut_explicit (void) = default;
+Small_defaultedOut_defaultedOut_explicit::Small_defaultedOut_defaultedOut_explicit (Small_defaultedOut_defaultedOut_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_defaultedOut_defaultedOut_explicit Small_defaultedOut_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Small_defaultedOut_defaultedOut_explicit> (Small_defaultedOut_defaultedOut_explicit arg);
+/*** C++ class Large_defaultedOut_defaultedOut_explicit ***/
+class Large_defaultedOut_defaultedOut_explicit {
+public:
+  Large_defaultedOut_defaultedOut_explicit (void);
+  Large_defaultedOut_defaultedOut_explicit (const Large_defaultedOut_defaultedOut_explicit &rhs);
+  ~Large_defaultedOut_defaultedOut_explicit (void);
+  Large_defaultedOut_defaultedOut_explicit (Large_defaultedOut_defaultedOut_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_defaultedOut_explicit::Large_defaultedOut_defaultedOut_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_defaultedOut_explicit::Large_defaultedOut_defaultedOut_explicit (const Large_defaultedOut_defaultedOut_explicit &rhs) = default;
+Large_defaultedOut_defaultedOut_explicit::~Large_defaultedOut_defaultedOut_explicit (void) = default;
+Large_defaultedOut_defaultedOut_explicit::Large_defaultedOut_defaultedOut_explicit (Large_defaultedOut_defaultedOut_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_defaultedOut_defaultedOut_explicit Large_defaultedOut_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Large_defaultedOut_defaultedOut_explicit> (Large_defaultedOut_defaultedOut_explicit arg);
+/*** Class derived from Small_defaultedOut_defaultedOut_explicit ***/
+class Derived_defaultedOut_defaultedOut_explicit : public Small_defaultedOut_defaultedOut_explicit {
+public:
+};
+
+Derived_defaultedOut_defaultedOut_explicit Derived_defaultedOut_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Derived_defaultedOut_defaultedOut_explicit> (Derived_defaultedOut_defaultedOut_explicit arg);
+/*** Class that contains Small_defaultedOut_defaultedOut_explicit ***/
+class Container_defaultedOut_defaultedOut_explicit {
+public:
+  Small_defaultedOut_defaultedOut_explicit item;
+};
+
+Container_defaultedOut_defaultedOut_explicit Container_defaultedOut_defaultedOut_explicit_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_defaultedOut_explicit> (Container_defaultedOut_defaultedOut_explicit arg);
+/*** C++ class Small_defaultedOut_defaultedOut_defaultedIn ***/
+class Small_defaultedOut_defaultedOut_defaultedIn {
+public:
+  Small_defaultedOut_defaultedOut_defaultedIn (void);
+  Small_defaultedOut_defaultedOut_defaultedIn (const Small_defaultedOut_defaultedOut_defaultedIn &rhs);
+  ~Small_defaultedOut_defaultedOut_defaultedIn (void);
+  Small_defaultedOut_defaultedOut_defaultedIn (Small_defaultedOut_defaultedOut_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_defaultedOut_defaultedOut_defaultedIn::Small_defaultedOut_defaultedOut_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_defaultedOut_defaultedIn::Small_defaultedOut_defaultedOut_defaultedIn (const Small_defaultedOut_defaultedOut_defaultedIn &rhs) = default;
+Small_defaultedOut_defaultedOut_defaultedIn::~Small_defaultedOut_defaultedOut_defaultedIn (void) = default;
+
+
+Small_defaultedOut_defaultedOut_defaultedIn Small_defaultedOut_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Small_defaultedOut_defaultedOut_defaultedIn> (Small_defaultedOut_defaultedOut_defaultedIn arg);
+/*** C++ class Large_defaultedOut_defaultedOut_defaultedIn ***/
+class Large_defaultedOut_defaultedOut_defaultedIn {
+public:
+  Large_defaultedOut_defaultedOut_defaultedIn (void);
+  Large_defaultedOut_defaultedOut_defaultedIn (const Large_defaultedOut_defaultedOut_defaultedIn &rhs);
+  ~Large_defaultedOut_defaultedOut_defaultedIn (void);
+  Large_defaultedOut_defaultedOut_defaultedIn (Large_defaultedOut_defaultedOut_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_defaultedOut_defaultedOut_defaultedIn::Large_defaultedOut_defaultedOut_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_defaultedOut_defaultedIn::Large_defaultedOut_defaultedOut_defaultedIn (const Large_defaultedOut_defaultedOut_defaultedIn &rhs) = default;
+Large_defaultedOut_defaultedOut_defaultedIn::~Large_defaultedOut_defaultedOut_defaultedIn (void) = default;
+
+
+Large_defaultedOut_defaultedOut_defaultedIn Large_defaultedOut_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Large_defaultedOut_defaultedOut_defaultedIn> (Large_defaultedOut_defaultedOut_defaultedIn arg);
+/*** Class derived from Small_defaultedOut_defaultedOut_defaultedIn ***/
+class Derived_defaultedOut_defaultedOut_defaultedIn : public Small_defaultedOut_defaultedOut_defaultedIn {
+public:
+};
+
+Derived_defaultedOut_defaultedOut_defaultedIn Derived_defaultedOut_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Derived_defaultedOut_defaultedOut_defaultedIn> (Derived_defaultedOut_defaultedOut_defaultedIn arg);
+/*** Class that contains Small_defaultedOut_defaultedOut_defaultedIn ***/
+class Container_defaultedOut_defaultedOut_defaultedIn {
+public:
+  Small_defaultedOut_defaultedOut_defaultedIn item;
+};
+
+Container_defaultedOut_defaultedOut_defaultedIn Container_defaultedOut_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_defaultedOut_defaultedIn> (Container_defaultedOut_defaultedOut_defaultedIn arg);
+/*** C++ class Small_defaultedOut_defaultedOut_defaultedOut ***/
+class Small_defaultedOut_defaultedOut_defaultedOut {
+public:
+  Small_defaultedOut_defaultedOut_defaultedOut (void);
+  Small_defaultedOut_defaultedOut_defaultedOut (const Small_defaultedOut_defaultedOut_defaultedOut &rhs);
+  ~Small_defaultedOut_defaultedOut_defaultedOut (void);
+  Small_defaultedOut_defaultedOut_defaultedOut (Small_defaultedOut_defaultedOut_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_defaultedOut_defaultedOut_defaultedOut::Small_defaultedOut_defaultedOut_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_defaultedOut_defaultedOut::Small_defaultedOut_defaultedOut_defaultedOut (const Small_defaultedOut_defaultedOut_defaultedOut &rhs) = default;
+Small_defaultedOut_defaultedOut_defaultedOut::~Small_defaultedOut_defaultedOut_defaultedOut (void) = default;
+Small_defaultedOut_defaultedOut_defaultedOut::Small_defaultedOut_defaultedOut_defaultedOut (Small_defaultedOut_defaultedOut_defaultedOut &&rhs) = default;
+
+
+Small_defaultedOut_defaultedOut_defaultedOut Small_defaultedOut_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Small_defaultedOut_defaultedOut_defaultedOut> (Small_defaultedOut_defaultedOut_defaultedOut arg);
+/*** C++ class Large_defaultedOut_defaultedOut_defaultedOut ***/
+class Large_defaultedOut_defaultedOut_defaultedOut {
+public:
+  Large_defaultedOut_defaultedOut_defaultedOut (void);
+  Large_defaultedOut_defaultedOut_defaultedOut (const Large_defaultedOut_defaultedOut_defaultedOut &rhs);
+  ~Large_defaultedOut_defaultedOut_defaultedOut (void);
+  Large_defaultedOut_defaultedOut_defaultedOut (Large_defaultedOut_defaultedOut_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_defaultedOut_defaultedOut_defaultedOut::Large_defaultedOut_defaultedOut_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_defaultedOut_defaultedOut::Large_defaultedOut_defaultedOut_defaultedOut (const Large_defaultedOut_defaultedOut_defaultedOut &rhs) = default;
+Large_defaultedOut_defaultedOut_defaultedOut::~Large_defaultedOut_defaultedOut_defaultedOut (void) = default;
+Large_defaultedOut_defaultedOut_defaultedOut::Large_defaultedOut_defaultedOut_defaultedOut (Large_defaultedOut_defaultedOut_defaultedOut &&rhs) = default;
+
+
+Large_defaultedOut_defaultedOut_defaultedOut Large_defaultedOut_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Large_defaultedOut_defaultedOut_defaultedOut> (Large_defaultedOut_defaultedOut_defaultedOut arg);
+/*** Class derived from Small_defaultedOut_defaultedOut_defaultedOut ***/
+class Derived_defaultedOut_defaultedOut_defaultedOut : public Small_defaultedOut_defaultedOut_defaultedOut {
+public:
+};
+
+Derived_defaultedOut_defaultedOut_defaultedOut Derived_defaultedOut_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Derived_defaultedOut_defaultedOut_defaultedOut> (Derived_defaultedOut_defaultedOut_defaultedOut arg);
+/*** Class that contains Small_defaultedOut_defaultedOut_defaultedOut ***/
+class Container_defaultedOut_defaultedOut_defaultedOut {
+public:
+  Small_defaultedOut_defaultedOut_defaultedOut item;
+};
+
+Container_defaultedOut_defaultedOut_defaultedOut Container_defaultedOut_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_defaultedOut_defaultedOut> (Container_defaultedOut_defaultedOut_defaultedOut arg);
+/*** C++ class Small_defaultedOut_defaultedOut_deleted ***/
+class Small_defaultedOut_defaultedOut_deleted {
+public:
+  Small_defaultedOut_defaultedOut_deleted (void);
+  Small_defaultedOut_defaultedOut_deleted (const Small_defaultedOut_defaultedOut_deleted &rhs);
+  ~Small_defaultedOut_defaultedOut_deleted (void);
+  Small_defaultedOut_defaultedOut_deleted (Small_defaultedOut_defaultedOut_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_defaultedOut_defaultedOut_deleted::Small_defaultedOut_defaultedOut_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_defaultedOut_defaultedOut_deleted::Small_defaultedOut_defaultedOut_deleted (const Small_defaultedOut_defaultedOut_deleted &rhs) = default;
+Small_defaultedOut_defaultedOut_deleted::~Small_defaultedOut_defaultedOut_deleted (void) = default;
+
+
+Small_defaultedOut_defaultedOut_deleted Small_defaultedOut_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Small_defaultedOut_defaultedOut_deleted> (Small_defaultedOut_defaultedOut_deleted arg);
+/*** C++ class Large_defaultedOut_defaultedOut_deleted ***/
+class Large_defaultedOut_defaultedOut_deleted {
+public:
+  Large_defaultedOut_defaultedOut_deleted (void);
+  Large_defaultedOut_defaultedOut_deleted (const Large_defaultedOut_defaultedOut_deleted &rhs);
+  ~Large_defaultedOut_defaultedOut_deleted (void);
+  Large_defaultedOut_defaultedOut_deleted (Large_defaultedOut_defaultedOut_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_defaultedOut_defaultedOut_deleted::Large_defaultedOut_defaultedOut_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_defaultedOut_defaultedOut_deleted::Large_defaultedOut_defaultedOut_deleted (const Large_defaultedOut_defaultedOut_deleted &rhs) = default;
+Large_defaultedOut_defaultedOut_deleted::~Large_defaultedOut_defaultedOut_deleted (void) = default;
+
+
+Large_defaultedOut_defaultedOut_deleted Large_defaultedOut_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Large_defaultedOut_defaultedOut_deleted> (Large_defaultedOut_defaultedOut_deleted arg);
+/*** Class derived from Small_defaultedOut_defaultedOut_deleted ***/
+class Derived_defaultedOut_defaultedOut_deleted : public Small_defaultedOut_defaultedOut_deleted {
+public:
+};
+
+Derived_defaultedOut_defaultedOut_deleted Derived_defaultedOut_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Derived_defaultedOut_defaultedOut_deleted> (Derived_defaultedOut_defaultedOut_deleted arg);
+/*** Class that contains Small_defaultedOut_defaultedOut_deleted ***/
+class Container_defaultedOut_defaultedOut_deleted {
+public:
+  Small_defaultedOut_defaultedOut_deleted item;
+};
+
+Container_defaultedOut_defaultedOut_deleted Container_defaultedOut_defaultedOut_deleted_var; /* global var */
+
+template int cbv_container<Container_defaultedOut_defaultedOut_deleted> (Container_defaultedOut_defaultedOut_deleted arg);
+/*** C++ class Small_deleted_absent_absent ***/
+class Small_deleted_absent_absent {
+public:
+  Small_deleted_absent_absent (void);
+  Small_deleted_absent_absent (const Small_deleted_absent_absent &rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_deleted_absent_absent::Small_deleted_absent_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_deleted_absent_absent Small_deleted_absent_absent_var; /* global var */
+
+template int cbv<Small_deleted_absent_absent> (Small_deleted_absent_absent arg);
+/*** C++ class Large_deleted_absent_absent ***/
+class Large_deleted_absent_absent {
+public:
+  Large_deleted_absent_absent (void);
+  Large_deleted_absent_absent (const Large_deleted_absent_absent &rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_deleted_absent_absent::Large_deleted_absent_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_deleted_absent_absent Large_deleted_absent_absent_var; /* global var */
+
+template int cbv<Large_deleted_absent_absent> (Large_deleted_absent_absent arg);
+/*** Class derived from Small_deleted_absent_absent ***/
+class Derived_deleted_absent_absent : public Small_deleted_absent_absent {
+public:
+};
+
+Derived_deleted_absent_absent Derived_deleted_absent_absent_var; /* global var */
+
+template int cbv<Derived_deleted_absent_absent> (Derived_deleted_absent_absent arg);
+/*** Class that contains Small_deleted_absent_absent ***/
+class Container_deleted_absent_absent {
+public:
+  Small_deleted_absent_absent item;
+};
+
+Container_deleted_absent_absent Container_deleted_absent_absent_var; /* global var */
+
+template int cbv_container<Container_deleted_absent_absent> (Container_deleted_absent_absent arg);
+/*** C++ class Small_deleted_absent_explicit ***/
+class Small_deleted_absent_explicit {
+public:
+  Small_deleted_absent_explicit (void);
+  Small_deleted_absent_explicit (const Small_deleted_absent_explicit &rhs) = delete;
+  Small_deleted_absent_explicit (Small_deleted_absent_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_deleted_absent_explicit::Small_deleted_absent_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_absent_explicit::Small_deleted_absent_explicit (Small_deleted_absent_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_deleted_absent_explicit Small_deleted_absent_explicit_var; /* global var */
+
+template int cbv<Small_deleted_absent_explicit> (Small_deleted_absent_explicit arg);
+/*** C++ class Large_deleted_absent_explicit ***/
+class Large_deleted_absent_explicit {
+public:
+  Large_deleted_absent_explicit (void);
+  Large_deleted_absent_explicit (const Large_deleted_absent_explicit &rhs) = delete;
+  Large_deleted_absent_explicit (Large_deleted_absent_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_deleted_absent_explicit::Large_deleted_absent_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_deleted_absent_explicit::Large_deleted_absent_explicit (Large_deleted_absent_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_deleted_absent_explicit Large_deleted_absent_explicit_var; /* global var */
+
+template int cbv<Large_deleted_absent_explicit> (Large_deleted_absent_explicit arg);
+/*** Class derived from Small_deleted_absent_explicit ***/
+class Derived_deleted_absent_explicit : public Small_deleted_absent_explicit {
+public:
+};
+
+Derived_deleted_absent_explicit Derived_deleted_absent_explicit_var; /* global var */
+
+template int cbv<Derived_deleted_absent_explicit> (Derived_deleted_absent_explicit arg);
+/*** Class that contains Small_deleted_absent_explicit ***/
+class Container_deleted_absent_explicit {
+public:
+  Small_deleted_absent_explicit item;
+};
+
+Container_deleted_absent_explicit Container_deleted_absent_explicit_var; /* global var */
+
+template int cbv_container<Container_deleted_absent_explicit> (Container_deleted_absent_explicit arg);
+/*** C++ class Small_deleted_absent_defaultedIn ***/
+class Small_deleted_absent_defaultedIn {
+public:
+  Small_deleted_absent_defaultedIn (void);
+  Small_deleted_absent_defaultedIn (const Small_deleted_absent_defaultedIn &rhs) = delete;
+  Small_deleted_absent_defaultedIn (Small_deleted_absent_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_deleted_absent_defaultedIn::Small_deleted_absent_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_deleted_absent_defaultedIn Small_deleted_absent_defaultedIn_var; /* global var */
+
+template int cbv<Small_deleted_absent_defaultedIn> (Small_deleted_absent_defaultedIn arg);
+/*** C++ class Large_deleted_absent_defaultedIn ***/
+class Large_deleted_absent_defaultedIn {
+public:
+  Large_deleted_absent_defaultedIn (void);
+  Large_deleted_absent_defaultedIn (const Large_deleted_absent_defaultedIn &rhs) = delete;
+  Large_deleted_absent_defaultedIn (Large_deleted_absent_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_deleted_absent_defaultedIn::Large_deleted_absent_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_deleted_absent_defaultedIn Large_deleted_absent_defaultedIn_var; /* global var */
+
+template int cbv<Large_deleted_absent_defaultedIn> (Large_deleted_absent_defaultedIn arg);
+/*** Class derived from Small_deleted_absent_defaultedIn ***/
+class Derived_deleted_absent_defaultedIn : public Small_deleted_absent_defaultedIn {
+public:
+};
+
+Derived_deleted_absent_defaultedIn Derived_deleted_absent_defaultedIn_var; /* global var */
+
+template int cbv<Derived_deleted_absent_defaultedIn> (Derived_deleted_absent_defaultedIn arg);
+/*** Class that contains Small_deleted_absent_defaultedIn ***/
+class Container_deleted_absent_defaultedIn {
+public:
+  Small_deleted_absent_defaultedIn item;
+};
+
+Container_deleted_absent_defaultedIn Container_deleted_absent_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_deleted_absent_defaultedIn> (Container_deleted_absent_defaultedIn arg);
+/*** C++ class Small_deleted_absent_defaultedOut ***/
+class Small_deleted_absent_defaultedOut {
+public:
+  Small_deleted_absent_defaultedOut (void);
+  Small_deleted_absent_defaultedOut (const Small_deleted_absent_defaultedOut &rhs) = delete;
+  Small_deleted_absent_defaultedOut (Small_deleted_absent_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_deleted_absent_defaultedOut::Small_deleted_absent_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_absent_defaultedOut::Small_deleted_absent_defaultedOut (Small_deleted_absent_defaultedOut &&rhs) = default;
+
+
+Small_deleted_absent_defaultedOut Small_deleted_absent_defaultedOut_var; /* global var */
+
+template int cbv<Small_deleted_absent_defaultedOut> (Small_deleted_absent_defaultedOut arg);
+/*** C++ class Large_deleted_absent_defaultedOut ***/
+class Large_deleted_absent_defaultedOut {
+public:
+  Large_deleted_absent_defaultedOut (void);
+  Large_deleted_absent_defaultedOut (const Large_deleted_absent_defaultedOut &rhs) = delete;
+  Large_deleted_absent_defaultedOut (Large_deleted_absent_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_deleted_absent_defaultedOut::Large_deleted_absent_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_deleted_absent_defaultedOut::Large_deleted_absent_defaultedOut (Large_deleted_absent_defaultedOut &&rhs) = default;
+
+
+Large_deleted_absent_defaultedOut Large_deleted_absent_defaultedOut_var; /* global var */
+
+template int cbv<Large_deleted_absent_defaultedOut> (Large_deleted_absent_defaultedOut arg);
+/*** Class derived from Small_deleted_absent_defaultedOut ***/
+class Derived_deleted_absent_defaultedOut : public Small_deleted_absent_defaultedOut {
+public:
+};
+
+Derived_deleted_absent_defaultedOut Derived_deleted_absent_defaultedOut_var; /* global var */
+
+template int cbv<Derived_deleted_absent_defaultedOut> (Derived_deleted_absent_defaultedOut arg);
+/*** Class that contains Small_deleted_absent_defaultedOut ***/
+class Container_deleted_absent_defaultedOut {
+public:
+  Small_deleted_absent_defaultedOut item;
+};
+
+Container_deleted_absent_defaultedOut Container_deleted_absent_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_deleted_absent_defaultedOut> (Container_deleted_absent_defaultedOut arg);
+/*** C++ class Small_deleted_absent_deleted ***/
+class Small_deleted_absent_deleted {
+public:
+  Small_deleted_absent_deleted (void);
+  Small_deleted_absent_deleted (const Small_deleted_absent_deleted &rhs) = delete;
+  Small_deleted_absent_deleted (Small_deleted_absent_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_deleted_absent_deleted::Small_deleted_absent_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_deleted_absent_deleted Small_deleted_absent_deleted_var; /* global var */
+
+template int cbv<Small_deleted_absent_deleted> (Small_deleted_absent_deleted arg);
+/*** C++ class Large_deleted_absent_deleted ***/
+class Large_deleted_absent_deleted {
+public:
+  Large_deleted_absent_deleted (void);
+  Large_deleted_absent_deleted (const Large_deleted_absent_deleted &rhs) = delete;
+  Large_deleted_absent_deleted (Large_deleted_absent_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_deleted_absent_deleted::Large_deleted_absent_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_deleted_absent_deleted Large_deleted_absent_deleted_var; /* global var */
+
+template int cbv<Large_deleted_absent_deleted> (Large_deleted_absent_deleted arg);
+/*** Class derived from Small_deleted_absent_deleted ***/
+class Derived_deleted_absent_deleted : public Small_deleted_absent_deleted {
+public:
+};
+
+Derived_deleted_absent_deleted Derived_deleted_absent_deleted_var; /* global var */
+
+template int cbv<Derived_deleted_absent_deleted> (Derived_deleted_absent_deleted arg);
+/*** Class that contains Small_deleted_absent_deleted ***/
+class Container_deleted_absent_deleted {
+public:
+  Small_deleted_absent_deleted item;
+};
+
+Container_deleted_absent_deleted Container_deleted_absent_deleted_var; /* global var */
+
+template int cbv_container<Container_deleted_absent_deleted> (Container_deleted_absent_deleted arg);
+/*** C++ class Small_deleted_explicit_absent ***/
+class Small_deleted_explicit_absent {
+public:
+  Small_deleted_explicit_absent (void);
+  Small_deleted_explicit_absent (const Small_deleted_explicit_absent &rhs) = delete;
+  ~Small_deleted_explicit_absent (void);
+
+
+  int data[2];
+};
+
+Small_deleted_explicit_absent::Small_deleted_explicit_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_explicit_absent::~Small_deleted_explicit_absent (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_deleted_explicit_absent Small_deleted_explicit_absent_var; /* global var */
+
+template int cbv<Small_deleted_explicit_absent> (Small_deleted_explicit_absent arg);
+/*** C++ class Large_deleted_explicit_absent ***/
+class Large_deleted_explicit_absent {
+public:
+  Large_deleted_explicit_absent (void);
+  Large_deleted_explicit_absent (const Large_deleted_explicit_absent &rhs) = delete;
+  ~Large_deleted_explicit_absent (void);
+
+
+  int data[150];
+};
+
+Large_deleted_explicit_absent::Large_deleted_explicit_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_deleted_explicit_absent::~Large_deleted_explicit_absent (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_deleted_explicit_absent Large_deleted_explicit_absent_var; /* global var */
+
+template int cbv<Large_deleted_explicit_absent> (Large_deleted_explicit_absent arg);
+/*** Class derived from Small_deleted_explicit_absent ***/
+class Derived_deleted_explicit_absent : public Small_deleted_explicit_absent {
+public:
+};
+
+Derived_deleted_explicit_absent Derived_deleted_explicit_absent_var; /* global var */
+
+template int cbv<Derived_deleted_explicit_absent> (Derived_deleted_explicit_absent arg);
+/*** Class that contains Small_deleted_explicit_absent ***/
+class Container_deleted_explicit_absent {
+public:
+  Small_deleted_explicit_absent item;
+};
+
+Container_deleted_explicit_absent Container_deleted_explicit_absent_var; /* global var */
+
+template int cbv_container<Container_deleted_explicit_absent> (Container_deleted_explicit_absent arg);
+/*** C++ class Small_deleted_explicit_explicit ***/
+class Small_deleted_explicit_explicit {
+public:
+  Small_deleted_explicit_explicit (void);
+  Small_deleted_explicit_explicit (const Small_deleted_explicit_explicit &rhs) = delete;
+  ~Small_deleted_explicit_explicit (void);
+  Small_deleted_explicit_explicit (Small_deleted_explicit_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_deleted_explicit_explicit::Small_deleted_explicit_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_explicit_explicit::~Small_deleted_explicit_explicit (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_deleted_explicit_explicit::Small_deleted_explicit_explicit (Small_deleted_explicit_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_deleted_explicit_explicit Small_deleted_explicit_explicit_var; /* global var */
+
+template int cbv<Small_deleted_explicit_explicit> (Small_deleted_explicit_explicit arg);
+/*** C++ class Large_deleted_explicit_explicit ***/
+class Large_deleted_explicit_explicit {
+public:
+  Large_deleted_explicit_explicit (void);
+  Large_deleted_explicit_explicit (const Large_deleted_explicit_explicit &rhs) = delete;
+  ~Large_deleted_explicit_explicit (void);
+  Large_deleted_explicit_explicit (Large_deleted_explicit_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_deleted_explicit_explicit::Large_deleted_explicit_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_deleted_explicit_explicit::~Large_deleted_explicit_explicit (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_deleted_explicit_explicit::Large_deleted_explicit_explicit (Large_deleted_explicit_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_deleted_explicit_explicit Large_deleted_explicit_explicit_var; /* global var */
+
+template int cbv<Large_deleted_explicit_explicit> (Large_deleted_explicit_explicit arg);
+/*** Class derived from Small_deleted_explicit_explicit ***/
+class Derived_deleted_explicit_explicit : public Small_deleted_explicit_explicit {
+public:
+};
+
+Derived_deleted_explicit_explicit Derived_deleted_explicit_explicit_var; /* global var */
+
+template int cbv<Derived_deleted_explicit_explicit> (Derived_deleted_explicit_explicit arg);
+/*** Class that contains Small_deleted_explicit_explicit ***/
+class Container_deleted_explicit_explicit {
+public:
+  Small_deleted_explicit_explicit item;
+};
+
+Container_deleted_explicit_explicit Container_deleted_explicit_explicit_var; /* global var */
+
+template int cbv_container<Container_deleted_explicit_explicit> (Container_deleted_explicit_explicit arg);
+/*** C++ class Small_deleted_explicit_defaultedIn ***/
+class Small_deleted_explicit_defaultedIn {
+public:
+  Small_deleted_explicit_defaultedIn (void);
+  Small_deleted_explicit_defaultedIn (const Small_deleted_explicit_defaultedIn &rhs) = delete;
+  ~Small_deleted_explicit_defaultedIn (void);
+  Small_deleted_explicit_defaultedIn (Small_deleted_explicit_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_deleted_explicit_defaultedIn::Small_deleted_explicit_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_explicit_defaultedIn::~Small_deleted_explicit_defaultedIn (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_deleted_explicit_defaultedIn Small_deleted_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Small_deleted_explicit_defaultedIn> (Small_deleted_explicit_defaultedIn arg);
+/*** C++ class Large_deleted_explicit_defaultedIn ***/
+class Large_deleted_explicit_defaultedIn {
+public:
+  Large_deleted_explicit_defaultedIn (void);
+  Large_deleted_explicit_defaultedIn (const Large_deleted_explicit_defaultedIn &rhs) = delete;
+  ~Large_deleted_explicit_defaultedIn (void);
+  Large_deleted_explicit_defaultedIn (Large_deleted_explicit_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_deleted_explicit_defaultedIn::Large_deleted_explicit_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_deleted_explicit_defaultedIn::~Large_deleted_explicit_defaultedIn (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_deleted_explicit_defaultedIn Large_deleted_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Large_deleted_explicit_defaultedIn> (Large_deleted_explicit_defaultedIn arg);
+/*** Class derived from Small_deleted_explicit_defaultedIn ***/
+class Derived_deleted_explicit_defaultedIn : public Small_deleted_explicit_defaultedIn {
+public:
+};
+
+Derived_deleted_explicit_defaultedIn Derived_deleted_explicit_defaultedIn_var; /* global var */
+
+template int cbv<Derived_deleted_explicit_defaultedIn> (Derived_deleted_explicit_defaultedIn arg);
+/*** Class that contains Small_deleted_explicit_defaultedIn ***/
+class Container_deleted_explicit_defaultedIn {
+public:
+  Small_deleted_explicit_defaultedIn item;
+};
+
+Container_deleted_explicit_defaultedIn Container_deleted_explicit_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_deleted_explicit_defaultedIn> (Container_deleted_explicit_defaultedIn arg);
+/*** C++ class Small_deleted_explicit_defaultedOut ***/
+class Small_deleted_explicit_defaultedOut {
+public:
+  Small_deleted_explicit_defaultedOut (void);
+  Small_deleted_explicit_defaultedOut (const Small_deleted_explicit_defaultedOut &rhs) = delete;
+  ~Small_deleted_explicit_defaultedOut (void);
+  Small_deleted_explicit_defaultedOut (Small_deleted_explicit_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_deleted_explicit_defaultedOut::Small_deleted_explicit_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_explicit_defaultedOut::~Small_deleted_explicit_defaultedOut (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+Small_deleted_explicit_defaultedOut::Small_deleted_explicit_defaultedOut (Small_deleted_explicit_defaultedOut &&rhs) = default;
+
+
+Small_deleted_explicit_defaultedOut Small_deleted_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Small_deleted_explicit_defaultedOut> (Small_deleted_explicit_defaultedOut arg);
+/*** C++ class Large_deleted_explicit_defaultedOut ***/
+class Large_deleted_explicit_defaultedOut {
+public:
+  Large_deleted_explicit_defaultedOut (void);
+  Large_deleted_explicit_defaultedOut (const Large_deleted_explicit_defaultedOut &rhs) = delete;
+  ~Large_deleted_explicit_defaultedOut (void);
+  Large_deleted_explicit_defaultedOut (Large_deleted_explicit_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_deleted_explicit_defaultedOut::Large_deleted_explicit_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_deleted_explicit_defaultedOut::~Large_deleted_explicit_defaultedOut (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+Large_deleted_explicit_defaultedOut::Large_deleted_explicit_defaultedOut (Large_deleted_explicit_defaultedOut &&rhs) = default;
+
+
+Large_deleted_explicit_defaultedOut Large_deleted_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Large_deleted_explicit_defaultedOut> (Large_deleted_explicit_defaultedOut arg);
+/*** Class derived from Small_deleted_explicit_defaultedOut ***/
+class Derived_deleted_explicit_defaultedOut : public Small_deleted_explicit_defaultedOut {
+public:
+};
+
+Derived_deleted_explicit_defaultedOut Derived_deleted_explicit_defaultedOut_var; /* global var */
+
+template int cbv<Derived_deleted_explicit_defaultedOut> (Derived_deleted_explicit_defaultedOut arg);
+/*** Class that contains Small_deleted_explicit_defaultedOut ***/
+class Container_deleted_explicit_defaultedOut {
+public:
+  Small_deleted_explicit_defaultedOut item;
+};
+
+Container_deleted_explicit_defaultedOut Container_deleted_explicit_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_deleted_explicit_defaultedOut> (Container_deleted_explicit_defaultedOut arg);
+/*** C++ class Small_deleted_explicit_deleted ***/
+class Small_deleted_explicit_deleted {
+public:
+  Small_deleted_explicit_deleted (void);
+  Small_deleted_explicit_deleted (const Small_deleted_explicit_deleted &rhs) = delete;
+  ~Small_deleted_explicit_deleted (void);
+  Small_deleted_explicit_deleted (Small_deleted_explicit_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_deleted_explicit_deleted::Small_deleted_explicit_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_explicit_deleted::~Small_deleted_explicit_deleted (void)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_deleted_explicit_deleted Small_deleted_explicit_deleted_var; /* global var */
+
+template int cbv<Small_deleted_explicit_deleted> (Small_deleted_explicit_deleted arg);
+/*** C++ class Large_deleted_explicit_deleted ***/
+class Large_deleted_explicit_deleted {
+public:
+  Large_deleted_explicit_deleted (void);
+  Large_deleted_explicit_deleted (const Large_deleted_explicit_deleted &rhs) = delete;
+  ~Large_deleted_explicit_deleted (void);
+  Large_deleted_explicit_deleted (Large_deleted_explicit_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_deleted_explicit_deleted::Large_deleted_explicit_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_deleted_explicit_deleted::~Large_deleted_explicit_deleted (void)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_deleted_explicit_deleted Large_deleted_explicit_deleted_var; /* global var */
+
+template int cbv<Large_deleted_explicit_deleted> (Large_deleted_explicit_deleted arg);
+/*** Class derived from Small_deleted_explicit_deleted ***/
+class Derived_deleted_explicit_deleted : public Small_deleted_explicit_deleted {
+public:
+};
+
+Derived_deleted_explicit_deleted Derived_deleted_explicit_deleted_var; /* global var */
+
+template int cbv<Derived_deleted_explicit_deleted> (Derived_deleted_explicit_deleted arg);
+/*** Class that contains Small_deleted_explicit_deleted ***/
+class Container_deleted_explicit_deleted {
+public:
+  Small_deleted_explicit_deleted item;
+};
+
+Container_deleted_explicit_deleted Container_deleted_explicit_deleted_var; /* global var */
+
+template int cbv_container<Container_deleted_explicit_deleted> (Container_deleted_explicit_deleted arg);
+/*** C++ class Small_deleted_defaultedIn_absent ***/
+class Small_deleted_defaultedIn_absent {
+public:
+  Small_deleted_defaultedIn_absent (void);
+  Small_deleted_defaultedIn_absent (const Small_deleted_defaultedIn_absent &rhs) = delete;
+  ~Small_deleted_defaultedIn_absent (void) = default;
+
+
+  int data[2];
+};
+
+Small_deleted_defaultedIn_absent::Small_deleted_defaultedIn_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_deleted_defaultedIn_absent Small_deleted_defaultedIn_absent_var; /* global var */
+
+template int cbv<Small_deleted_defaultedIn_absent> (Small_deleted_defaultedIn_absent arg);
+/*** C++ class Large_deleted_defaultedIn_absent ***/
+class Large_deleted_defaultedIn_absent {
+public:
+  Large_deleted_defaultedIn_absent (void);
+  Large_deleted_defaultedIn_absent (const Large_deleted_defaultedIn_absent &rhs) = delete;
+  ~Large_deleted_defaultedIn_absent (void) = default;
+
+
+  int data[150];
+};
+
+Large_deleted_defaultedIn_absent::Large_deleted_defaultedIn_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_deleted_defaultedIn_absent Large_deleted_defaultedIn_absent_var; /* global var */
+
+template int cbv<Large_deleted_defaultedIn_absent> (Large_deleted_defaultedIn_absent arg);
+/*** Class derived from Small_deleted_defaultedIn_absent ***/
+class Derived_deleted_defaultedIn_absent : public Small_deleted_defaultedIn_absent {
+public:
+};
+
+Derived_deleted_defaultedIn_absent Derived_deleted_defaultedIn_absent_var; /* global var */
+
+template int cbv<Derived_deleted_defaultedIn_absent> (Derived_deleted_defaultedIn_absent arg);
+/*** Class that contains Small_deleted_defaultedIn_absent ***/
+class Container_deleted_defaultedIn_absent {
+public:
+  Small_deleted_defaultedIn_absent item;
+};
+
+Container_deleted_defaultedIn_absent Container_deleted_defaultedIn_absent_var; /* global var */
+
+template int cbv_container<Container_deleted_defaultedIn_absent> (Container_deleted_defaultedIn_absent arg);
+/*** C++ class Small_deleted_defaultedIn_explicit ***/
+class Small_deleted_defaultedIn_explicit {
+public:
+  Small_deleted_defaultedIn_explicit (void);
+  Small_deleted_defaultedIn_explicit (const Small_deleted_defaultedIn_explicit &rhs) = delete;
+  ~Small_deleted_defaultedIn_explicit (void) = default;
+  Small_deleted_defaultedIn_explicit (Small_deleted_defaultedIn_explicit &&rhs);
+
+
+  int data[2];
+};
+
+Small_deleted_defaultedIn_explicit::Small_deleted_defaultedIn_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_defaultedIn_explicit::Small_deleted_defaultedIn_explicit (Small_deleted_defaultedIn_explicit &&rhs)
+{
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
+}
+
+
+Small_deleted_defaultedIn_explicit Small_deleted_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Small_deleted_defaultedIn_explicit> (Small_deleted_defaultedIn_explicit arg);
+/*** C++ class Large_deleted_defaultedIn_explicit ***/
+class Large_deleted_defaultedIn_explicit {
+public:
+  Large_deleted_defaultedIn_explicit (void);
+  Large_deleted_defaultedIn_explicit (const Large_deleted_defaultedIn_explicit &rhs) = delete;
+  ~Large_deleted_defaultedIn_explicit (void) = default;
+  Large_deleted_defaultedIn_explicit (Large_deleted_defaultedIn_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_deleted_defaultedIn_explicit::Large_deleted_defaultedIn_explicit (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_deleted_defaultedIn_explicit::Large_deleted_defaultedIn_explicit (Large_deleted_defaultedIn_explicit &&rhs)
+{
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
+}
+
+
+Large_deleted_defaultedIn_explicit Large_deleted_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Large_deleted_defaultedIn_explicit> (Large_deleted_defaultedIn_explicit arg);
+/*** Class derived from Small_deleted_defaultedIn_explicit ***/
+class Derived_deleted_defaultedIn_explicit : public Small_deleted_defaultedIn_explicit {
+public:
+};
+
+Derived_deleted_defaultedIn_explicit Derived_deleted_defaultedIn_explicit_var; /* global var */
+
+template int cbv<Derived_deleted_defaultedIn_explicit> (Derived_deleted_defaultedIn_explicit arg);
+/*** Class that contains Small_deleted_defaultedIn_explicit ***/
+class Container_deleted_defaultedIn_explicit {
+public:
+  Small_deleted_defaultedIn_explicit item;
+};
+
+Container_deleted_defaultedIn_explicit Container_deleted_defaultedIn_explicit_var; /* global var */
+
+template int cbv_container<Container_deleted_defaultedIn_explicit> (Container_deleted_defaultedIn_explicit arg);
+/*** C++ class Small_deleted_defaultedIn_defaultedIn ***/
+class Small_deleted_defaultedIn_defaultedIn {
+public:
+  Small_deleted_defaultedIn_defaultedIn (void);
+  Small_deleted_defaultedIn_defaultedIn (const Small_deleted_defaultedIn_defaultedIn &rhs) = delete;
+  ~Small_deleted_defaultedIn_defaultedIn (void) = default;
+  Small_deleted_defaultedIn_defaultedIn (Small_deleted_defaultedIn_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_deleted_defaultedIn_defaultedIn::Small_deleted_defaultedIn_defaultedIn (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_deleted_defaultedIn_defaultedIn Small_deleted_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Small_deleted_defaultedIn_defaultedIn> (Small_deleted_defaultedIn_defaultedIn arg);
+/*** C++ class Large_deleted_defaultedIn_defaultedIn ***/
+class Large_deleted_defaultedIn_defaultedIn {
+public:
+  Large_deleted_defaultedIn_defaultedIn (void);
+  Large_deleted_defaultedIn_defaultedIn (const Large_deleted_defaultedIn_defaultedIn &rhs) = delete;
+  ~Large_deleted_defaultedIn_defaultedIn (void) = default;
+  Large_deleted_defaultedIn_defaultedIn (Large_deleted_defaultedIn_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
+
+Large_deleted_defaultedIn_defaultedIn::Large_deleted_defaultedIn_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_deleted_defaultedIn_defaultedIn Large_deleted_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Large_deleted_defaultedIn_defaultedIn> (Large_deleted_defaultedIn_defaultedIn arg);
+/*** Class derived from Small_deleted_defaultedIn_defaultedIn ***/
+class Derived_deleted_defaultedIn_defaultedIn : public Small_deleted_defaultedIn_defaultedIn {
+public:
+};
+
+Derived_deleted_defaultedIn_defaultedIn Derived_deleted_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv<Derived_deleted_defaultedIn_defaultedIn> (Derived_deleted_defaultedIn_defaultedIn arg);
+/*** Class that contains Small_deleted_defaultedIn_defaultedIn ***/
+class Container_deleted_defaultedIn_defaultedIn {
+public:
+  Small_deleted_defaultedIn_defaultedIn item;
+};
+
+Container_deleted_defaultedIn_defaultedIn Container_deleted_defaultedIn_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_deleted_defaultedIn_defaultedIn> (Container_deleted_defaultedIn_defaultedIn arg);
+/*** C++ class Small_deleted_defaultedIn_defaultedOut ***/
+class Small_deleted_defaultedIn_defaultedOut {
+public:
+  Small_deleted_defaultedIn_defaultedOut (void);
+  Small_deleted_defaultedIn_defaultedOut (const Small_deleted_defaultedIn_defaultedOut &rhs) = delete;
+  ~Small_deleted_defaultedIn_defaultedOut (void) = default;
+  Small_deleted_defaultedIn_defaultedOut (Small_deleted_defaultedIn_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_deleted_defaultedIn_defaultedOut::Small_deleted_defaultedIn_defaultedOut (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_defaultedIn_defaultedOut::Small_deleted_defaultedIn_defaultedOut (Small_deleted_defaultedIn_defaultedOut &&rhs) = default;
+
+
+Small_deleted_defaultedIn_defaultedOut Small_deleted_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Small_deleted_defaultedIn_defaultedOut> (Small_deleted_defaultedIn_defaultedOut arg);
+/*** C++ class Large_deleted_defaultedIn_defaultedOut ***/
+class Large_deleted_defaultedIn_defaultedOut {
+public:
+  Large_deleted_defaultedIn_defaultedOut (void);
+  Large_deleted_defaultedIn_defaultedOut (const Large_deleted_defaultedIn_defaultedOut &rhs) = delete;
+  ~Large_deleted_defaultedIn_defaultedOut (void) = default;
+  Large_deleted_defaultedIn_defaultedOut (Large_deleted_defaultedIn_defaultedOut &&rhs);
+
+
+  int data[150];
+};
+
+Large_deleted_defaultedIn_defaultedOut::Large_deleted_defaultedIn_defaultedOut (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_deleted_defaultedIn_defaultedOut::Large_deleted_defaultedIn_defaultedOut (Large_deleted_defaultedIn_defaultedOut &&rhs) = default;
+
+
+Large_deleted_defaultedIn_defaultedOut Large_deleted_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Large_deleted_defaultedIn_defaultedOut> (Large_deleted_defaultedIn_defaultedOut arg);
+/*** Class derived from Small_deleted_defaultedIn_defaultedOut ***/
+class Derived_deleted_defaultedIn_defaultedOut : public Small_deleted_defaultedIn_defaultedOut {
+public:
+};
+
+Derived_deleted_defaultedIn_defaultedOut Derived_deleted_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv<Derived_deleted_defaultedIn_defaultedOut> (Derived_deleted_defaultedIn_defaultedOut arg);
+/*** Class that contains Small_deleted_defaultedIn_defaultedOut ***/
+class Container_deleted_defaultedIn_defaultedOut {
+public:
+  Small_deleted_defaultedIn_defaultedOut item;
+};
+
+Container_deleted_defaultedIn_defaultedOut Container_deleted_defaultedIn_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_deleted_defaultedIn_defaultedOut> (Container_deleted_defaultedIn_defaultedOut arg);
+/*** C++ class Small_deleted_defaultedIn_deleted ***/
+class Small_deleted_defaultedIn_deleted {
+public:
+  Small_deleted_defaultedIn_deleted (void);
+  Small_deleted_defaultedIn_deleted (const Small_deleted_defaultedIn_deleted &rhs) = delete;
+  ~Small_deleted_defaultedIn_deleted (void) = default;
+  Small_deleted_defaultedIn_deleted (Small_deleted_defaultedIn_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_deleted_defaultedIn_deleted::Small_deleted_defaultedIn_deleted (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+
+
+Small_deleted_defaultedIn_deleted Small_deleted_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Small_deleted_defaultedIn_deleted> (Small_deleted_defaultedIn_deleted arg);
+/*** C++ class Large_deleted_defaultedIn_deleted ***/
+class Large_deleted_defaultedIn_deleted {
+public:
+  Large_deleted_defaultedIn_deleted (void);
+  Large_deleted_defaultedIn_deleted (const Large_deleted_defaultedIn_deleted &rhs) = delete;
+  ~Large_deleted_defaultedIn_deleted (void) = default;
+  Large_deleted_defaultedIn_deleted (Large_deleted_defaultedIn_deleted &&rhs) = delete;
+
+
+  int data[150];
+};
+
+Large_deleted_defaultedIn_deleted::Large_deleted_defaultedIn_deleted (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+
+
+Large_deleted_defaultedIn_deleted Large_deleted_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Large_deleted_defaultedIn_deleted> (Large_deleted_defaultedIn_deleted arg);
+/*** Class derived from Small_deleted_defaultedIn_deleted ***/
+class Derived_deleted_defaultedIn_deleted : public Small_deleted_defaultedIn_deleted {
+public:
+};
+
+Derived_deleted_defaultedIn_deleted Derived_deleted_defaultedIn_deleted_var; /* global var */
+
+template int cbv<Derived_deleted_defaultedIn_deleted> (Derived_deleted_defaultedIn_deleted arg);
+/*** Class that contains Small_deleted_defaultedIn_deleted ***/
+class Container_deleted_defaultedIn_deleted {
+public:
+  Small_deleted_defaultedIn_deleted item;
+};
+
+Container_deleted_defaultedIn_deleted Container_deleted_defaultedIn_deleted_var; /* global var */
+
+template int cbv_container<Container_deleted_defaultedIn_deleted> (Container_deleted_defaultedIn_deleted arg);
+/*** C++ class Small_deleted_defaultedOut_absent ***/
+class Small_deleted_defaultedOut_absent {
+public:
+  Small_deleted_defaultedOut_absent (void);
+  Small_deleted_defaultedOut_absent (const Small_deleted_defaultedOut_absent &rhs) = delete;
+  ~Small_deleted_defaultedOut_absent (void);
+
+
+  int data[2];
+};
+
+Small_deleted_defaultedOut_absent::Small_deleted_defaultedOut_absent (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_defaultedOut_absent::~Small_deleted_defaultedOut_absent (void) = default;
+
+
+Small_deleted_defaultedOut_absent Small_deleted_defaultedOut_absent_var; /* global var */
+
+template int cbv<Small_deleted_defaultedOut_absent> (Small_deleted_defaultedOut_absent arg);
+/*** C++ class Large_deleted_defaultedOut_absent ***/
+class Large_deleted_defaultedOut_absent {
+public:
+  Large_deleted_defaultedOut_absent (void);
+  Large_deleted_defaultedOut_absent (const Large_deleted_defaultedOut_absent &rhs) = delete;
+  ~Large_deleted_defaultedOut_absent (void);
+
+
+  int data[150];
+};
+
+Large_deleted_defaultedOut_absent::Large_deleted_defaultedOut_absent (void)
+{
+  data[0] = 2;
+  data[149] = 2;
+}
+
+Large_deleted_defaultedOut_absent::~Large_deleted_defaultedOut_absent (void) = default;
+
+
+Large_deleted_defaultedOut_absent Large_deleted_defaultedOut_absent_var; /* global var */
+
+template int cbv<Large_deleted_defaultedOut_absent> (Large_deleted_defaultedOut_absent arg);
+/*** Class derived from Small_deleted_defaultedOut_absent ***/
+class Derived_deleted_defaultedOut_absent : public Small_deleted_defaultedOut_absent {
+public:
+};
+
+Derived_deleted_defaultedOut_absent Derived_deleted_defaultedOut_absent_var; /* global var */
+
+template int cbv<Derived_deleted_defaultedOut_absent> (Derived_deleted_defaultedOut_absent arg);
+/*** Class that contains Small_deleted_defaultedOut_absent ***/
+class Container_deleted_defaultedOut_absent {
+public:
+  Small_deleted_defaultedOut_absent item;
+};
+
+Container_deleted_defaultedOut_absent Container_deleted_defaultedOut_absent_var; /* global var */
+
+template int cbv_container<Container_deleted_defaultedOut_absent> (Container_deleted_defaultedOut_absent arg);
+/*** C++ class Small_deleted_defaultedOut_explicit ***/
+class Small_deleted_defaultedOut_explicit {
 public:
-  Obj ();
-  Obj (const Obj &);
-  ~Obj ();
-  int var[2];
+  Small_deleted_defaultedOut_explicit (void);
+  Small_deleted_defaultedOut_explicit (const Small_deleted_defaultedOut_explicit &rhs) = delete;
+  ~Small_deleted_defaultedOut_explicit (void);
+  Small_deleted_defaultedOut_explicit (Small_deleted_defaultedOut_explicit &&rhs);
+
+
+  int data[2];
 };
 
-int foo (Obj arg)
+Small_deleted_defaultedOut_explicit::Small_deleted_defaultedOut_explicit (void)
+{
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_defaultedOut_explicit::~Small_deleted_defaultedOut_explicit (void) = default;
+Small_deleted_defaultedOut_explicit::Small_deleted_defaultedOut_explicit (Small_deleted_defaultedOut_explicit &&rhs)
 {
-  return arg.var[0] + arg.var[1];
+  data[0] = 3;
+  data[1] = 3;
+  tracer = 5;
 }
 
-Obj::Obj ()
+
+Small_deleted_defaultedOut_explicit Small_deleted_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Small_deleted_defaultedOut_explicit> (Small_deleted_defaultedOut_explicit arg);
+/*** C++ class Large_deleted_defaultedOut_explicit ***/
+class Large_deleted_defaultedOut_explicit {
+public:
+  Large_deleted_defaultedOut_explicit (void);
+  Large_deleted_defaultedOut_explicit (const Large_deleted_defaultedOut_explicit &rhs) = delete;
+  ~Large_deleted_defaultedOut_explicit (void);
+  Large_deleted_defaultedOut_explicit (Large_deleted_defaultedOut_explicit &&rhs);
+
+
+  int data[150];
+};
+
+Large_deleted_defaultedOut_explicit::Large_deleted_defaultedOut_explicit (void)
 {
-  var[0] = 1;
-  var[1] = 2;
+  data[0] = 2;
+  data[149] = 2;
 }
 
-Obj::Obj (const Obj &obj)
+Large_deleted_defaultedOut_explicit::~Large_deleted_defaultedOut_explicit (void) = default;
+Large_deleted_defaultedOut_explicit::Large_deleted_defaultedOut_explicit (Large_deleted_defaultedOut_explicit &&rhs)
 {
-  var[0] = obj.var[0];
-  var[1] = obj.var[1];
+  data[0] = 3;
+  data[149] = 3;
+  tracer = 5;
 }
 
-Obj::~Obj ()
+
+Large_deleted_defaultedOut_explicit Large_deleted_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Large_deleted_defaultedOut_explicit> (Large_deleted_defaultedOut_explicit arg);
+/*** Class derived from Small_deleted_defaultedOut_explicit ***/
+class Derived_deleted_defaultedOut_explicit : public Small_deleted_defaultedOut_explicit {
+public:
+};
+
+Derived_deleted_defaultedOut_explicit Derived_deleted_defaultedOut_explicit_var; /* global var */
+
+template int cbv<Derived_deleted_defaultedOut_explicit> (Derived_deleted_defaultedOut_explicit arg);
+/*** Class that contains Small_deleted_defaultedOut_explicit ***/
+class Container_deleted_defaultedOut_explicit {
+public:
+  Small_deleted_defaultedOut_explicit item;
+};
+
+Container_deleted_defaultedOut_explicit Container_deleted_defaultedOut_explicit_var; /* global var */
+
+template int cbv_container<Container_deleted_defaultedOut_explicit> (Container_deleted_defaultedOut_explicit arg);
+/*** C++ class Small_deleted_defaultedOut_defaultedIn ***/
+class Small_deleted_defaultedOut_defaultedIn {
+public:
+  Small_deleted_defaultedOut_defaultedIn (void);
+  Small_deleted_defaultedOut_defaultedIn (const Small_deleted_defaultedOut_defaultedIn &rhs) = delete;
+  ~Small_deleted_defaultedOut_defaultedIn (void);
+  Small_deleted_defaultedOut_defaultedIn (Small_deleted_defaultedOut_defaultedIn &&rhs) = default;
+
+
+  int data[2];
+};
+
+Small_deleted_defaultedOut_defaultedIn::Small_deleted_defaultedOut_defaultedIn (void)
 {
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_defaultedOut_defaultedIn::~Small_deleted_defaultedOut_defaultedIn (void) = default;
+
+
+Small_deleted_defaultedOut_defaultedIn Small_deleted_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Small_deleted_defaultedOut_defaultedIn> (Small_deleted_defaultedOut_defaultedIn arg);
+/*** C++ class Large_deleted_defaultedOut_defaultedIn ***/
+class Large_deleted_defaultedOut_defaultedIn {
+public:
+  Large_deleted_defaultedOut_defaultedIn (void);
+  Large_deleted_defaultedOut_defaultedIn (const Large_deleted_defaultedOut_defaultedIn &rhs) = delete;
+  ~Large_deleted_defaultedOut_defaultedIn (void);
+  Large_deleted_defaultedOut_defaultedIn (Large_deleted_defaultedOut_defaultedIn &&rhs) = default;
+
+
+  int data[150];
+};
 
+Large_deleted_defaultedOut_defaultedIn::Large_deleted_defaultedOut_defaultedIn (void)
+{
+  data[0] = 2;
+  data[149] = 2;
 }
 
-struct Derived : public Obj
+Large_deleted_defaultedOut_defaultedIn::~Large_deleted_defaultedOut_defaultedIn (void) = default;
+
+
+Large_deleted_defaultedOut_defaultedIn Large_deleted_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Large_deleted_defaultedOut_defaultedIn> (Large_deleted_defaultedOut_defaultedIn arg);
+/*** Class derived from Small_deleted_defaultedOut_defaultedIn ***/
+class Derived_deleted_defaultedOut_defaultedIn : public Small_deleted_defaultedOut_defaultedIn {
+public:
+};
+
+Derived_deleted_defaultedOut_defaultedIn Derived_deleted_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv<Derived_deleted_defaultedOut_defaultedIn> (Derived_deleted_defaultedOut_defaultedIn arg);
+/*** Class that contains Small_deleted_defaultedOut_defaultedIn ***/
+class Container_deleted_defaultedOut_defaultedIn {
+public:
+  Small_deleted_defaultedOut_defaultedIn item;
+};
+
+Container_deleted_defaultedOut_defaultedIn Container_deleted_defaultedOut_defaultedIn_var; /* global var */
+
+template int cbv_container<Container_deleted_defaultedOut_defaultedIn> (Container_deleted_defaultedOut_defaultedIn arg);
+/*** C++ class Small_deleted_defaultedOut_defaultedOut ***/
+class Small_deleted_defaultedOut_defaultedOut {
+public:
+  Small_deleted_defaultedOut_defaultedOut (void);
+  Small_deleted_defaultedOut_defaultedOut (const Small_deleted_defaultedOut_defaultedOut &rhs) = delete;
+  ~Small_deleted_defaultedOut_defaultedOut (void);
+  Small_deleted_defaultedOut_defaultedOut (Small_deleted_defaultedOut_defaultedOut &&rhs);
+
+
+  int data[2];
+};
+
+Small_deleted_defaultedOut_defaultedOut::Small_deleted_defaultedOut_defaultedOut (void)
 {
-  int other;
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_defaultedOut_defaultedOut::~Small_deleted_defaultedOut_defaultedOut (void) = default;
+Small_deleted_defaultedOut_defaultedOut::Small_deleted_defaultedOut_defaultedOut (Small_deleted_defaultedOut_defaultedOut &&rhs) = default;
+
+
+Small_deleted_defaultedOut_defaultedOut Small_deleted_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Small_deleted_defaultedOut_defaultedOut> (Small_deleted_defaultedOut_defaultedOut arg);
+/*** C++ class Large_deleted_defaultedOut_defaultedOut ***/
+class Large_deleted_defaultedOut_defaultedOut {
+public:
+  Large_deleted_defaultedOut_defaultedOut (void);
+  Large_deleted_defaultedOut_defaultedOut (const Large_deleted_defaultedOut_defaultedOut &rhs) = delete;
+  ~Large_deleted_defaultedOut_defaultedOut (void);
+  Large_deleted_defaultedOut_defaultedOut (Large_deleted_defaultedOut_defaultedOut &&rhs);
+
+
+  int data[150];
 };
 
-int blap (Derived arg)
+Large_deleted_defaultedOut_defaultedOut::Large_deleted_defaultedOut_defaultedOut (void)
 {
-  return foo (arg);
+  data[0] = 2;
+  data[149] = 2;
 }
 
-struct Container
+Large_deleted_defaultedOut_defaultedOut::~Large_deleted_defaultedOut_defaultedOut (void) = default;
+Large_deleted_defaultedOut_defaultedOut::Large_deleted_defaultedOut_defaultedOut (Large_deleted_defaultedOut_defaultedOut &&rhs) = default;
+
+
+Large_deleted_defaultedOut_defaultedOut Large_deleted_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Large_deleted_defaultedOut_defaultedOut> (Large_deleted_defaultedOut_defaultedOut arg);
+/*** Class derived from Small_deleted_defaultedOut_defaultedOut ***/
+class Derived_deleted_defaultedOut_defaultedOut : public Small_deleted_defaultedOut_defaultedOut {
+public:
+};
+
+Derived_deleted_defaultedOut_defaultedOut Derived_deleted_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv<Derived_deleted_defaultedOut_defaultedOut> (Derived_deleted_defaultedOut_defaultedOut arg);
+/*** Class that contains Small_deleted_defaultedOut_defaultedOut ***/
+class Container_deleted_defaultedOut_defaultedOut {
+public:
+  Small_deleted_defaultedOut_defaultedOut item;
+};
+
+Container_deleted_defaultedOut_defaultedOut Container_deleted_defaultedOut_defaultedOut_var; /* global var */
+
+template int cbv_container<Container_deleted_defaultedOut_defaultedOut> (Container_deleted_defaultedOut_defaultedOut arg);
+/*** C++ class Small_deleted_defaultedOut_deleted ***/
+class Small_deleted_defaultedOut_deleted {
+public:
+  Small_deleted_defaultedOut_deleted (void);
+  Small_deleted_defaultedOut_deleted (const Small_deleted_defaultedOut_deleted &rhs) = delete;
+  ~Small_deleted_defaultedOut_deleted (void);
+  Small_deleted_defaultedOut_deleted (Small_deleted_defaultedOut_deleted &&rhs) = delete;
+
+
+  int data[2];
+};
+
+Small_deleted_defaultedOut_deleted::Small_deleted_defaultedOut_deleted (void)
 {
-  Obj obj;
+  data[0] = 2;
+  data[1] = 2;
+}
+
+Small_deleted_defaultedOut_deleted::~Small_deleted_defaultedOut_deleted (void) = default;
+
+
+Small_deleted_defaultedOut_deleted Small_deleted_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Small_deleted_defaultedOut_deleted> (Small_deleted_defaultedOut_deleted arg);
+/*** C++ class Large_deleted_defaultedOut_deleted ***/
+class Large_deleted_defaultedOut_deleted {
+public:
+  Large_deleted_defaultedOut_deleted (void);
+  Large_deleted_defaultedOut_deleted (const Large_deleted_defaultedOut_deleted &rhs) = delete;
+  ~Large_deleted_defaultedOut_deleted (void);
+  Large_deleted_defaultedOut_deleted (Large_deleted_defaultedOut_deleted &&rhs) = delete;
+
+
+  int data[150];
 };
 
-int blip (Container arg)
+Large_deleted_defaultedOut_deleted::Large_deleted_defaultedOut_deleted (void)
 {
-  return foo (arg.obj);
+  data[0] = 2;
+  data[149] = 2;
 }
 
-Obj global_obj;
-Derived global_derived;
-Container global_container;
+Large_deleted_defaultedOut_deleted::~Large_deleted_defaultedOut_deleted (void) = default;
+
+
+Large_deleted_defaultedOut_deleted Large_deleted_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Large_deleted_defaultedOut_deleted> (Large_deleted_defaultedOut_deleted arg);
+/*** Class derived from Small_deleted_defaultedOut_deleted ***/
+class Derived_deleted_defaultedOut_deleted : public Small_deleted_defaultedOut_deleted {
+public:
+};
+
+Derived_deleted_defaultedOut_deleted Derived_deleted_defaultedOut_deleted_var; /* global var */
+
+template int cbv<Derived_deleted_defaultedOut_deleted> (Derived_deleted_defaultedOut_deleted arg);
+/*** Class that contains Small_deleted_defaultedOut_deleted ***/
+class Container_deleted_defaultedOut_deleted {
+public:
+  Small_deleted_defaultedOut_deleted item;
+};
+
+Container_deleted_defaultedOut_deleted Container_deleted_defaultedOut_deleted_var; /* global var */
+
+template int cbv_container<Container_deleted_defaultedOut_deleted> (Container_deleted_defaultedOut_deleted arg);
 
 int
-main ()
+main (void)
 {
-  int bar = foo (global_obj);
-  blap (global_derived);
-  blip (global_container);
-  return bar;
+  cbv<Small_absent_absent_absent> (Small_absent_absent_absent_var);
+  cbv<Large_absent_absent_absent> (Large_absent_absent_absent_var);
+  cbv<Derived_absent_absent_absent> (Derived_absent_absent_absent_var);
+  cbv_container<Container_absent_absent_absent> (Container_absent_absent_absent_var);
+  cbv<Small_absent_explicit_absent> (Small_absent_explicit_absent_var);
+  cbv<Large_absent_explicit_absent> (Large_absent_explicit_absent_var);
+  cbv<Derived_absent_explicit_absent> (Derived_absent_explicit_absent_var);
+  cbv_container<Container_absent_explicit_absent> (Container_absent_explicit_absent_var);
+  cbv<Small_absent_defaultedIn_absent> (Small_absent_defaultedIn_absent_var);
+  cbv<Large_absent_defaultedIn_absent> (Large_absent_defaultedIn_absent_var);
+  cbv<Derived_absent_defaultedIn_absent> (Derived_absent_defaultedIn_absent_var);
+  cbv_container<Container_absent_defaultedIn_absent> (Container_absent_defaultedIn_absent_var);
+  cbv<Small_absent_defaultedOut_absent> (Small_absent_defaultedOut_absent_var);
+  cbv<Large_absent_defaultedOut_absent> (Large_absent_defaultedOut_absent_var);
+  cbv<Derived_absent_defaultedOut_absent> (Derived_absent_defaultedOut_absent_var);
+  cbv_container<Container_absent_defaultedOut_absent> (Container_absent_defaultedOut_absent_var);
+  cbv<Small_explicit_absent_absent> (Small_explicit_absent_absent_var);
+  cbv<Large_explicit_absent_absent> (Large_explicit_absent_absent_var);
+  cbv<Derived_explicit_absent_absent> (Derived_explicit_absent_absent_var);
+  cbv_container<Container_explicit_absent_absent> (Container_explicit_absent_absent_var);
+  cbv<Small_explicit_absent_explicit> (Small_explicit_absent_explicit_var);
+  cbv<Large_explicit_absent_explicit> (Large_explicit_absent_explicit_var);
+  cbv<Derived_explicit_absent_explicit> (Derived_explicit_absent_explicit_var);
+  cbv_container<Container_explicit_absent_explicit> (Container_explicit_absent_explicit_var);
+  cbv<Small_explicit_absent_defaultedIn> (Small_explicit_absent_defaultedIn_var);
+  cbv<Large_explicit_absent_defaultedIn> (Large_explicit_absent_defaultedIn_var);
+  cbv<Derived_explicit_absent_defaultedIn> (Derived_explicit_absent_defaultedIn_var);
+  cbv_container<Container_explicit_absent_defaultedIn> (Container_explicit_absent_defaultedIn_var);
+  cbv<Small_explicit_absent_defaultedOut> (Small_explicit_absent_defaultedOut_var);
+  cbv<Large_explicit_absent_defaultedOut> (Large_explicit_absent_defaultedOut_var);
+  cbv<Derived_explicit_absent_defaultedOut> (Derived_explicit_absent_defaultedOut_var);
+  cbv_container<Container_explicit_absent_defaultedOut> (Container_explicit_absent_defaultedOut_var);
+  cbv<Small_explicit_absent_deleted> (Small_explicit_absent_deleted_var);
+  cbv<Large_explicit_absent_deleted> (Large_explicit_absent_deleted_var);
+  cbv<Derived_explicit_absent_deleted> (Derived_explicit_absent_deleted_var);
+  cbv_container<Container_explicit_absent_deleted> (Container_explicit_absent_deleted_var);
+  cbv<Small_explicit_explicit_absent> (Small_explicit_explicit_absent_var);
+  cbv<Large_explicit_explicit_absent> (Large_explicit_explicit_absent_var);
+  cbv<Derived_explicit_explicit_absent> (Derived_explicit_explicit_absent_var);
+  cbv_container<Container_explicit_explicit_absent> (Container_explicit_explicit_absent_var);
+  cbv<Small_explicit_explicit_explicit> (Small_explicit_explicit_explicit_var);
+  cbv<Large_explicit_explicit_explicit> (Large_explicit_explicit_explicit_var);
+  cbv<Derived_explicit_explicit_explicit> (Derived_explicit_explicit_explicit_var);
+  cbv_container<Container_explicit_explicit_explicit> (Container_explicit_explicit_explicit_var);
+  cbv<Small_explicit_explicit_defaultedIn> (Small_explicit_explicit_defaultedIn_var);
+  cbv<Large_explicit_explicit_defaultedIn> (Large_explicit_explicit_defaultedIn_var);
+  cbv<Derived_explicit_explicit_defaultedIn> (Derived_explicit_explicit_defaultedIn_var);
+  cbv_container<Container_explicit_explicit_defaultedIn> (Container_explicit_explicit_defaultedIn_var);
+  cbv<Small_explicit_explicit_defaultedOut> (Small_explicit_explicit_defaultedOut_var);
+  cbv<Large_explicit_explicit_defaultedOut> (Large_explicit_explicit_defaultedOut_var);
+  cbv<Derived_explicit_explicit_defaultedOut> (Derived_explicit_explicit_defaultedOut_var);
+  cbv_container<Container_explicit_explicit_defaultedOut> (Container_explicit_explicit_defaultedOut_var);
+  cbv<Small_explicit_explicit_deleted> (Small_explicit_explicit_deleted_var);
+  cbv<Large_explicit_explicit_deleted> (Large_explicit_explicit_deleted_var);
+  cbv<Derived_explicit_explicit_deleted> (Derived_explicit_explicit_deleted_var);
+  cbv_container<Container_explicit_explicit_deleted> (Container_explicit_explicit_deleted_var);
+  cbv<Small_explicit_defaultedIn_absent> (Small_explicit_defaultedIn_absent_var);
+  cbv<Large_explicit_defaultedIn_absent> (Large_explicit_defaultedIn_absent_var);
+  cbv<Derived_explicit_defaultedIn_absent> (Derived_explicit_defaultedIn_absent_var);
+  cbv_container<Container_explicit_defaultedIn_absent> (Container_explicit_defaultedIn_absent_var);
+  cbv<Small_explicit_defaultedIn_explicit> (Small_explicit_defaultedIn_explicit_var);
+  cbv<Large_explicit_defaultedIn_explicit> (Large_explicit_defaultedIn_explicit_var);
+  cbv<Derived_explicit_defaultedIn_explicit> (Derived_explicit_defaultedIn_explicit_var);
+  cbv_container<Container_explicit_defaultedIn_explicit> (Container_explicit_defaultedIn_explicit_var);
+  cbv<Small_explicit_defaultedIn_defaultedIn> (Small_explicit_defaultedIn_defaultedIn_var);
+  cbv<Large_explicit_defaultedIn_defaultedIn> (Large_explicit_defaultedIn_defaultedIn_var);
+  cbv<Derived_explicit_defaultedIn_defaultedIn> (Derived_explicit_defaultedIn_defaultedIn_var);
+  cbv_container<Container_explicit_defaultedIn_defaultedIn> (Container_explicit_defaultedIn_defaultedIn_var);
+  cbv<Small_explicit_defaultedIn_defaultedOut> (Small_explicit_defaultedIn_defaultedOut_var);
+  cbv<Large_explicit_defaultedIn_defaultedOut> (Large_explicit_defaultedIn_defaultedOut_var);
+  cbv<Derived_explicit_defaultedIn_defaultedOut> (Derived_explicit_defaultedIn_defaultedOut_var);
+  cbv_container<Container_explicit_defaultedIn_defaultedOut> (Container_explicit_defaultedIn_defaultedOut_var);
+  cbv<Small_explicit_defaultedIn_deleted> (Small_explicit_defaultedIn_deleted_var);
+  cbv<Large_explicit_defaultedIn_deleted> (Large_explicit_defaultedIn_deleted_var);
+  cbv<Derived_explicit_defaultedIn_deleted> (Derived_explicit_defaultedIn_deleted_var);
+  cbv_container<Container_explicit_defaultedIn_deleted> (Container_explicit_defaultedIn_deleted_var);
+  cbv<Small_explicit_defaultedOut_absent> (Small_explicit_defaultedOut_absent_var);
+  cbv<Large_explicit_defaultedOut_absent> (Large_explicit_defaultedOut_absent_var);
+  cbv<Derived_explicit_defaultedOut_absent> (Derived_explicit_defaultedOut_absent_var);
+  cbv_container<Container_explicit_defaultedOut_absent> (Container_explicit_defaultedOut_absent_var);
+  cbv<Small_explicit_defaultedOut_explicit> (Small_explicit_defaultedOut_explicit_var);
+  cbv<Large_explicit_defaultedOut_explicit> (Large_explicit_defaultedOut_explicit_var);
+  cbv<Derived_explicit_defaultedOut_explicit> (Derived_explicit_defaultedOut_explicit_var);
+  cbv_container<Container_explicit_defaultedOut_explicit> (Container_explicit_defaultedOut_explicit_var);
+  cbv<Small_explicit_defaultedOut_defaultedIn> (Small_explicit_defaultedOut_defaultedIn_var);
+  cbv<Large_explicit_defaultedOut_defaultedIn> (Large_explicit_defaultedOut_defaultedIn_var);
+  cbv<Derived_explicit_defaultedOut_defaultedIn> (Derived_explicit_defaultedOut_defaultedIn_var);
+  cbv_container<Container_explicit_defaultedOut_defaultedIn> (Container_explicit_defaultedOut_defaultedIn_var);
+  cbv<Small_explicit_defaultedOut_defaultedOut> (Small_explicit_defaultedOut_defaultedOut_var);
+  cbv<Large_explicit_defaultedOut_defaultedOut> (Large_explicit_defaultedOut_defaultedOut_var);
+  cbv<Derived_explicit_defaultedOut_defaultedOut> (Derived_explicit_defaultedOut_defaultedOut_var);
+  cbv_container<Container_explicit_defaultedOut_defaultedOut> (Container_explicit_defaultedOut_defaultedOut_var);
+  cbv<Small_explicit_defaultedOut_deleted> (Small_explicit_defaultedOut_deleted_var);
+  cbv<Large_explicit_defaultedOut_deleted> (Large_explicit_defaultedOut_deleted_var);
+  cbv<Derived_explicit_defaultedOut_deleted> (Derived_explicit_defaultedOut_deleted_var);
+  cbv_container<Container_explicit_defaultedOut_deleted> (Container_explicit_defaultedOut_deleted_var);
+  cbv<Small_defaultedIn_absent_absent> (Small_defaultedIn_absent_absent_var);
+  cbv<Large_defaultedIn_absent_absent> (Large_defaultedIn_absent_absent_var);
+  cbv<Derived_defaultedIn_absent_absent> (Derived_defaultedIn_absent_absent_var);
+  cbv_container<Container_defaultedIn_absent_absent> (Container_defaultedIn_absent_absent_var);
+  cbv<Small_defaultedIn_absent_explicit> (Small_defaultedIn_absent_explicit_var);
+  cbv<Large_defaultedIn_absent_explicit> (Large_defaultedIn_absent_explicit_var);
+  cbv<Derived_defaultedIn_absent_explicit> (Derived_defaultedIn_absent_explicit_var);
+  cbv_container<Container_defaultedIn_absent_explicit> (Container_defaultedIn_absent_explicit_var);
+  cbv<Small_defaultedIn_absent_defaultedIn> (Small_defaultedIn_absent_defaultedIn_var);
+  cbv<Large_defaultedIn_absent_defaultedIn> (Large_defaultedIn_absent_defaultedIn_var);
+  cbv<Derived_defaultedIn_absent_defaultedIn> (Derived_defaultedIn_absent_defaultedIn_var);
+  cbv_container<Container_defaultedIn_absent_defaultedIn> (Container_defaultedIn_absent_defaultedIn_var);
+  cbv<Small_defaultedIn_absent_defaultedOut> (Small_defaultedIn_absent_defaultedOut_var);
+  cbv<Large_defaultedIn_absent_defaultedOut> (Large_defaultedIn_absent_defaultedOut_var);
+  cbv<Derived_defaultedIn_absent_defaultedOut> (Derived_defaultedIn_absent_defaultedOut_var);
+  cbv_container<Container_defaultedIn_absent_defaultedOut> (Container_defaultedIn_absent_defaultedOut_var);
+  cbv<Small_defaultedIn_absent_deleted> (Small_defaultedIn_absent_deleted_var);
+  cbv<Large_defaultedIn_absent_deleted> (Large_defaultedIn_absent_deleted_var);
+  cbv<Derived_defaultedIn_absent_deleted> (Derived_defaultedIn_absent_deleted_var);
+  cbv_container<Container_defaultedIn_absent_deleted> (Container_defaultedIn_absent_deleted_var);
+  cbv<Small_defaultedIn_explicit_absent> (Small_defaultedIn_explicit_absent_var);
+  cbv<Large_defaultedIn_explicit_absent> (Large_defaultedIn_explicit_absent_var);
+  cbv<Derived_defaultedIn_explicit_absent> (Derived_defaultedIn_explicit_absent_var);
+  cbv_container<Container_defaultedIn_explicit_absent> (Container_defaultedIn_explicit_absent_var);
+  cbv<Small_defaultedIn_explicit_explicit> (Small_defaultedIn_explicit_explicit_var);
+  cbv<Large_defaultedIn_explicit_explicit> (Large_defaultedIn_explicit_explicit_var);
+  cbv<Derived_defaultedIn_explicit_explicit> (Derived_defaultedIn_explicit_explicit_var);
+  cbv_container<Container_defaultedIn_explicit_explicit> (Container_defaultedIn_explicit_explicit_var);
+  cbv<Small_defaultedIn_explicit_defaultedIn> (Small_defaultedIn_explicit_defaultedIn_var);
+  cbv<Large_defaultedIn_explicit_defaultedIn> (Large_defaultedIn_explicit_defaultedIn_var);
+  cbv<Derived_defaultedIn_explicit_defaultedIn> (Derived_defaultedIn_explicit_defaultedIn_var);
+  cbv_container<Container_defaultedIn_explicit_defaultedIn> (Container_defaultedIn_explicit_defaultedIn_var);
+  cbv<Small_defaultedIn_explicit_defaultedOut> (Small_defaultedIn_explicit_defaultedOut_var);
+  cbv<Large_defaultedIn_explicit_defaultedOut> (Large_defaultedIn_explicit_defaultedOut_var);
+  cbv<Derived_defaultedIn_explicit_defaultedOut> (Derived_defaultedIn_explicit_defaultedOut_var);
+  cbv_container<Container_defaultedIn_explicit_defaultedOut> (Container_defaultedIn_explicit_defaultedOut_var);
+  cbv<Small_defaultedIn_explicit_deleted> (Small_defaultedIn_explicit_deleted_var);
+  cbv<Large_defaultedIn_explicit_deleted> (Large_defaultedIn_explicit_deleted_var);
+  cbv<Derived_defaultedIn_explicit_deleted> (Derived_defaultedIn_explicit_deleted_var);
+  cbv_container<Container_defaultedIn_explicit_deleted> (Container_defaultedIn_explicit_deleted_var);
+  cbv<Small_defaultedIn_defaultedIn_absent> (Small_defaultedIn_defaultedIn_absent_var);
+  cbv<Large_defaultedIn_defaultedIn_absent> (Large_defaultedIn_defaultedIn_absent_var);
+  cbv<Derived_defaultedIn_defaultedIn_absent> (Derived_defaultedIn_defaultedIn_absent_var);
+  cbv_container<Container_defaultedIn_defaultedIn_absent> (Container_defaultedIn_defaultedIn_absent_var);
+  cbv<Small_defaultedIn_defaultedIn_explicit> (Small_defaultedIn_defaultedIn_explicit_var);
+  cbv<Large_defaultedIn_defaultedIn_explicit> (Large_defaultedIn_defaultedIn_explicit_var);
+  cbv<Derived_defaultedIn_defaultedIn_explicit> (Derived_defaultedIn_defaultedIn_explicit_var);
+  cbv_container<Container_defaultedIn_defaultedIn_explicit> (Container_defaultedIn_defaultedIn_explicit_var);
+  cbv<Small_defaultedIn_defaultedIn_defaultedIn> (Small_defaultedIn_defaultedIn_defaultedIn_var);
+  cbv<Large_defaultedIn_defaultedIn_defaultedIn> (Large_defaultedIn_defaultedIn_defaultedIn_var);
+  cbv<Derived_defaultedIn_defaultedIn_defaultedIn> (Derived_defaultedIn_defaultedIn_defaultedIn_var);
+  cbv_container<Container_defaultedIn_defaultedIn_defaultedIn> (Container_defaultedIn_defaultedIn_defaultedIn_var);
+  cbv<Small_defaultedIn_defaultedIn_defaultedOut> (Small_defaultedIn_defaultedIn_defaultedOut_var);
+  cbv<Large_defaultedIn_defaultedIn_defaultedOut> (Large_defaultedIn_defaultedIn_defaultedOut_var);
+  cbv<Derived_defaultedIn_defaultedIn_defaultedOut> (Derived_defaultedIn_defaultedIn_defaultedOut_var);
+  cbv_container<Container_defaultedIn_defaultedIn_defaultedOut> (Container_defaultedIn_defaultedIn_defaultedOut_var);
+  cbv<Small_defaultedIn_defaultedIn_deleted> (Small_defaultedIn_defaultedIn_deleted_var);
+  cbv<Large_defaultedIn_defaultedIn_deleted> (Large_defaultedIn_defaultedIn_deleted_var);
+  cbv<Derived_defaultedIn_defaultedIn_deleted> (Derived_defaultedIn_defaultedIn_deleted_var);
+  cbv_container<Container_defaultedIn_defaultedIn_deleted> (Container_defaultedIn_defaultedIn_deleted_var);
+  cbv<Small_defaultedIn_defaultedOut_absent> (Small_defaultedIn_defaultedOut_absent_var);
+  cbv<Large_defaultedIn_defaultedOut_absent> (Large_defaultedIn_defaultedOut_absent_var);
+  cbv<Derived_defaultedIn_defaultedOut_absent> (Derived_defaultedIn_defaultedOut_absent_var);
+  cbv_container<Container_defaultedIn_defaultedOut_absent> (Container_defaultedIn_defaultedOut_absent_var);
+  cbv<Small_defaultedIn_defaultedOut_explicit> (Small_defaultedIn_defaultedOut_explicit_var);
+  cbv<Large_defaultedIn_defaultedOut_explicit> (Large_defaultedIn_defaultedOut_explicit_var);
+  cbv<Derived_defaultedIn_defaultedOut_explicit> (Derived_defaultedIn_defaultedOut_explicit_var);
+  cbv_container<Container_defaultedIn_defaultedOut_explicit> (Container_defaultedIn_defaultedOut_explicit_var);
+  cbv<Small_defaultedIn_defaultedOut_defaultedIn> (Small_defaultedIn_defaultedOut_defaultedIn_var);
+  cbv<Large_defaultedIn_defaultedOut_defaultedIn> (Large_defaultedIn_defaultedOut_defaultedIn_var);
+  cbv<Derived_defaultedIn_defaultedOut_defaultedIn> (Derived_defaultedIn_defaultedOut_defaultedIn_var);
+  cbv_container<Container_defaultedIn_defaultedOut_defaultedIn> (Container_defaultedIn_defaultedOut_defaultedIn_var);
+  cbv<Small_defaultedIn_defaultedOut_defaultedOut> (Small_defaultedIn_defaultedOut_defaultedOut_var);
+  cbv<Large_defaultedIn_defaultedOut_defaultedOut> (Large_defaultedIn_defaultedOut_defaultedOut_var);
+  cbv<Derived_defaultedIn_defaultedOut_defaultedOut> (Derived_defaultedIn_defaultedOut_defaultedOut_var);
+  cbv_container<Container_defaultedIn_defaultedOut_defaultedOut> (Container_defaultedIn_defaultedOut_defaultedOut_var);
+  cbv<Small_defaultedIn_defaultedOut_deleted> (Small_defaultedIn_defaultedOut_deleted_var);
+  cbv<Large_defaultedIn_defaultedOut_deleted> (Large_defaultedIn_defaultedOut_deleted_var);
+  cbv<Derived_defaultedIn_defaultedOut_deleted> (Derived_defaultedIn_defaultedOut_deleted_var);
+  cbv_container<Container_defaultedIn_defaultedOut_deleted> (Container_defaultedIn_defaultedOut_deleted_var);
+  cbv<Small_defaultedOut_absent_absent> (Small_defaultedOut_absent_absent_var);
+  cbv<Large_defaultedOut_absent_absent> (Large_defaultedOut_absent_absent_var);
+  cbv<Derived_defaultedOut_absent_absent> (Derived_defaultedOut_absent_absent_var);
+  cbv_container<Container_defaultedOut_absent_absent> (Container_defaultedOut_absent_absent_var);
+  cbv<Small_defaultedOut_absent_explicit> (Small_defaultedOut_absent_explicit_var);
+  cbv<Large_defaultedOut_absent_explicit> (Large_defaultedOut_absent_explicit_var);
+  cbv<Derived_defaultedOut_absent_explicit> (Derived_defaultedOut_absent_explicit_var);
+  cbv_container<Container_defaultedOut_absent_explicit> (Container_defaultedOut_absent_explicit_var);
+  cbv<Small_defaultedOut_absent_defaultedIn> (Small_defaultedOut_absent_defaultedIn_var);
+  cbv<Large_defaultedOut_absent_defaultedIn> (Large_defaultedOut_absent_defaultedIn_var);
+  cbv<Derived_defaultedOut_absent_defaultedIn> (Derived_defaultedOut_absent_defaultedIn_var);
+  cbv_container<Container_defaultedOut_absent_defaultedIn> (Container_defaultedOut_absent_defaultedIn_var);
+  cbv<Small_defaultedOut_absent_defaultedOut> (Small_defaultedOut_absent_defaultedOut_var);
+  cbv<Large_defaultedOut_absent_defaultedOut> (Large_defaultedOut_absent_defaultedOut_var);
+  cbv<Derived_defaultedOut_absent_defaultedOut> (Derived_defaultedOut_absent_defaultedOut_var);
+  cbv_container<Container_defaultedOut_absent_defaultedOut> (Container_defaultedOut_absent_defaultedOut_var);
+  cbv<Small_defaultedOut_absent_deleted> (Small_defaultedOut_absent_deleted_var);
+  cbv<Large_defaultedOut_absent_deleted> (Large_defaultedOut_absent_deleted_var);
+  cbv<Derived_defaultedOut_absent_deleted> (Derived_defaultedOut_absent_deleted_var);
+  cbv_container<Container_defaultedOut_absent_deleted> (Container_defaultedOut_absent_deleted_var);
+  cbv<Small_defaultedOut_explicit_absent> (Small_defaultedOut_explicit_absent_var);
+  cbv<Large_defaultedOut_explicit_absent> (Large_defaultedOut_explicit_absent_var);
+  cbv<Derived_defaultedOut_explicit_absent> (Derived_defaultedOut_explicit_absent_var);
+  cbv_container<Container_defaultedOut_explicit_absent> (Container_defaultedOut_explicit_absent_var);
+  cbv<Small_defaultedOut_explicit_explicit> (Small_defaultedOut_explicit_explicit_var);
+  cbv<Large_defaultedOut_explicit_explicit> (Large_defaultedOut_explicit_explicit_var);
+  cbv<Derived_defaultedOut_explicit_explicit> (Derived_defaultedOut_explicit_explicit_var);
+  cbv_container<Container_defaultedOut_explicit_explicit> (Container_defaultedOut_explicit_explicit_var);
+  cbv<Small_defaultedOut_explicit_defaultedIn> (Small_defaultedOut_explicit_defaultedIn_var);
+  cbv<Large_defaultedOut_explicit_defaultedIn> (Large_defaultedOut_explicit_defaultedIn_var);
+  cbv<Derived_defaultedOut_explicit_defaultedIn> (Derived_defaultedOut_explicit_defaultedIn_var);
+  cbv_container<Container_defaultedOut_explicit_defaultedIn> (Container_defaultedOut_explicit_defaultedIn_var);
+  cbv<Small_defaultedOut_explicit_defaultedOut> (Small_defaultedOut_explicit_defaultedOut_var);
+  cbv<Large_defaultedOut_explicit_defaultedOut> (Large_defaultedOut_explicit_defaultedOut_var);
+  cbv<Derived_defaultedOut_explicit_defaultedOut> (Derived_defaultedOut_explicit_defaultedOut_var);
+  cbv_container<Container_defaultedOut_explicit_defaultedOut> (Container_defaultedOut_explicit_defaultedOut_var);
+  cbv<Small_defaultedOut_explicit_deleted> (Small_defaultedOut_explicit_deleted_var);
+  cbv<Large_defaultedOut_explicit_deleted> (Large_defaultedOut_explicit_deleted_var);
+  cbv<Derived_defaultedOut_explicit_deleted> (Derived_defaultedOut_explicit_deleted_var);
+  cbv_container<Container_defaultedOut_explicit_deleted> (Container_defaultedOut_explicit_deleted_var);
+  cbv<Small_defaultedOut_defaultedIn_absent> (Small_defaultedOut_defaultedIn_absent_var);
+  cbv<Large_defaultedOut_defaultedIn_absent> (Large_defaultedOut_defaultedIn_absent_var);
+  cbv<Derived_defaultedOut_defaultedIn_absent> (Derived_defaultedOut_defaultedIn_absent_var);
+  cbv_container<Container_defaultedOut_defaultedIn_absent> (Container_defaultedOut_defaultedIn_absent_var);
+  cbv<Small_defaultedOut_defaultedIn_explicit> (Small_defaultedOut_defaultedIn_explicit_var);
+  cbv<Large_defaultedOut_defaultedIn_explicit> (Large_defaultedOut_defaultedIn_explicit_var);
+  cbv<Derived_defaultedOut_defaultedIn_explicit> (Derived_defaultedOut_defaultedIn_explicit_var);
+  cbv_container<Container_defaultedOut_defaultedIn_explicit> (Container_defaultedOut_defaultedIn_explicit_var);
+  cbv<Small_defaultedOut_defaultedIn_defaultedIn> (Small_defaultedOut_defaultedIn_defaultedIn_var);
+  cbv<Large_defaultedOut_defaultedIn_defaultedIn> (Large_defaultedOut_defaultedIn_defaultedIn_var);
+  cbv<Derived_defaultedOut_defaultedIn_defaultedIn> (Derived_defaultedOut_defaultedIn_defaultedIn_var);
+  cbv_container<Container_defaultedOut_defaultedIn_defaultedIn> (Container_defaultedOut_defaultedIn_defaultedIn_var);
+  cbv<Small_defaultedOut_defaultedIn_defaultedOut> (Small_defaultedOut_defaultedIn_defaultedOut_var);
+  cbv<Large_defaultedOut_defaultedIn_defaultedOut> (Large_defaultedOut_defaultedIn_defaultedOut_var);
+  cbv<Derived_defaultedOut_defaultedIn_defaultedOut> (Derived_defaultedOut_defaultedIn_defaultedOut_var);
+  cbv_container<Container_defaultedOut_defaultedIn_defaultedOut> (Container_defaultedOut_defaultedIn_defaultedOut_var);
+  cbv<Small_defaultedOut_defaultedIn_deleted> (Small_defaultedOut_defaultedIn_deleted_var);
+  cbv<Large_defaultedOut_defaultedIn_deleted> (Large_defaultedOut_defaultedIn_deleted_var);
+  cbv<Derived_defaultedOut_defaultedIn_deleted> (Derived_defaultedOut_defaultedIn_deleted_var);
+  cbv_container<Container_defaultedOut_defaultedIn_deleted> (Container_defaultedOut_defaultedIn_deleted_var);
+  cbv<Small_defaultedOut_defaultedOut_absent> (Small_defaultedOut_defaultedOut_absent_var);
+  cbv<Large_defaultedOut_defaultedOut_absent> (Large_defaultedOut_defaultedOut_absent_var);
+  cbv<Derived_defaultedOut_defaultedOut_absent> (Derived_defaultedOut_defaultedOut_absent_var);
+  cbv_container<Container_defaultedOut_defaultedOut_absent> (Container_defaultedOut_defaultedOut_absent_var);
+  cbv<Small_defaultedOut_defaultedOut_explicit> (Small_defaultedOut_defaultedOut_explicit_var);
+  cbv<Large_defaultedOut_defaultedOut_explicit> (Large_defaultedOut_defaultedOut_explicit_var);
+  cbv<Derived_defaultedOut_defaultedOut_explicit> (Derived_defaultedOut_defaultedOut_explicit_var);
+  cbv_container<Container_defaultedOut_defaultedOut_explicit> (Container_defaultedOut_defaultedOut_explicit_var);
+  cbv<Small_defaultedOut_defaultedOut_defaultedIn> (Small_defaultedOut_defaultedOut_defaultedIn_var);
+  cbv<Large_defaultedOut_defaultedOut_defaultedIn> (Large_defaultedOut_defaultedOut_defaultedIn_var);
+  cbv<Derived_defaultedOut_defaultedOut_defaultedIn> (Derived_defaultedOut_defaultedOut_defaultedIn_var);
+  cbv_container<Container_defaultedOut_defaultedOut_defaultedIn> (Container_defaultedOut_defaultedOut_defaultedIn_var);
+  cbv<Small_defaultedOut_defaultedOut_defaultedOut> (Small_defaultedOut_defaultedOut_defaultedOut_var);
+  cbv<Large_defaultedOut_defaultedOut_defaultedOut> (Large_defaultedOut_defaultedOut_defaultedOut_var);
+  cbv<Derived_defaultedOut_defaultedOut_defaultedOut> (Derived_defaultedOut_defaultedOut_defaultedOut_var);
+  cbv_container<Container_defaultedOut_defaultedOut_defaultedOut> (Container_defaultedOut_defaultedOut_defaultedOut_var);
+  cbv<Small_defaultedOut_defaultedOut_deleted> (Small_defaultedOut_defaultedOut_deleted_var);
+  cbv<Large_defaultedOut_defaultedOut_deleted> (Large_defaultedOut_defaultedOut_deleted_var);
+  cbv<Derived_defaultedOut_defaultedOut_deleted> (Derived_defaultedOut_defaultedOut_deleted_var);
+  cbv_container<Container_defaultedOut_defaultedOut_deleted> (Container_defaultedOut_defaultedOut_deleted_var);
+
+
+  /* stop here */
+
+  return 0;
 }
diff --git a/gdb/testsuite/gdb.cp/pass-by-ref.exp b/gdb/testsuite/gdb.cp/pass-by-ref.exp
index 94dd3455ee4..8051c5c26b1 100644
--- a/gdb/testsuite/gdb.cp/pass-by-ref.exp
+++ b/gdb/testsuite/gdb.cp/pass-by-ref.exp
@@ -14,20 +14,418 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Check that GDB can call C++ functions whose parameters have
-# object type, but are passed by reference.
+# object type, and are either passed by value or implicitly by reference.
+#
+# Suppose F is a function that has a call-by-value parameter whose
+# type is class C.  When calling F with an argument A, a copy of A should
+# be created and passed to F.  If C is a trivially-copyable type, A can
+# be copied by a straightforward memory copy.  However, roughly speaking,
+# if C has a user-defined copy constructor and/or a user-defined
+# destructor, the copy ctor should be used to initialize the copy of A
+# before calling F, and a reference to that copy is passed to F.  After
+# the function returns, the destructor should be called to destruct the
+# copy.  In this case, C is said to be a 'pass-by-reference' type.
+# Determining whether C is pass-by-ref depends on
+# how the copy ctor, destructor, and the move ctor of C are defined.
+# First of all, C is not copy constructible if its copy constructor is
+# explicitly or implicitly deleted.  In this case, it would be illegal
+# to pass values of type C to a function.  C is pass-by-value, if all of
+# its copy ctor, dtor, and move ctor are trivially defined.
+# Otherwise, it is pass-by-ref.
+#
+# To cover the many possible combinations, this test generates classes
+# that contain three special functions:
+#   (1) a copy constructor,
+#   (2) a destructor, and
+#   (3) a move constructor.
+# A special function is in one of the following states:
+#  * explicit: The function is explicitly defined by the user.
+#  * defaultedIn: The function is defaulted inside the class decl,
+#      using the 'default' keyword.
+#  * defaultedOut: The function is declared inside the class decl,
+#      and defaulted outside using the 'default' keyword.
+#  * deleted: The function is explicitly deleted by the user,
+#      using the 'delete' keyword.
+#  * absent: The function is not declared by the user (i.e. it does not
+#      exist in the source.  The compiler generates (or deletes) the
+#      definition in this case.
+#
+# The C++ ABI decides if a class is pass-by-value or pass-by-ref
+# (i.e.  trivially copyable or not) first at the language level, based
+# on the state of the special functions.  Then, at the target level, a
+# class may be determined to be pass-by-ref because of its size
+# (e.g.  if it is too large to fit on registers).  For this reason, this
+# test generates both a small and a large version for the same
+# combination of special function states.
+#
+# A class is not trivially-copyable if a base class or a field is not
+# trivially-copyable, even though the class definition itself seems
+# trivial.  To test these cases, we also generate derived classes and
+# container classes.
+#
+# The companion test file pass-by-ref-2.exp also contains
+# manually-written cases.
+
+#
+# Flag to control whether to re-generate the source file
+#
+set GENERATE_SOURCE false
 
-if { [skip_cplus_tests] } { continue }
+if {[skip_cplus_tests]} {
+    untested "c++ test skipped"
+    continue
+}
 
 standard_testfile .cc
 
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
+# Some constant values used when generating the source
+
+set SMALL    2
+set LARGE    150
+set ORIGINAL 2
+set CUSTOM   3
+set ADDED    4
+set TRACE    5
+
+
+# Return 1 if the class whose special function states are STATES
+# is copyable.  Otherwise return 0.
+
+proc is_copy_constructible { states } {
+    set cctor [lindex $states 0]
+    set dtor  [lindex $states 1]
+    set mctor [lindex $states 2]
+
+    if {$cctor == "deleted" || ($cctor == "absent" && $mctor != "absent")} {
+	return 0
+    }
+    return 1
+}
+
+# Generate a declaration and an out-of-class definition for a function
+# with the provided signature.  The STATE should be one of the following:
+# - explicit, defaultedIn, defaultedOut, deleted, absent
+
+proc generate_member_function { classname signature length state } {
+    set declaration ""
+    set definition ""
+
+    global CUSTOM
+    global TRACE
+
+    switch $state {
+	explicit {
+	    set declaration "$signature;\n"
+	    set definition "$classname\:\:$signature
+                            {
+                              data\[0\] = $CUSTOM;
+                              data\[[expr $length - 1]\] = $CUSTOM;
+                              tracer = $TRACE;
+                            }\n"
+	}
+	defaultedIn {
+	    set declaration "$signature = default;\n"
+	}
+	defaultedOut {
+	    set declaration "$signature;\n"
+	    set definition "$classname\:\:$signature = default;\n"
+	}
+	deleted {
+	    set declaration "$signature = delete;\n"
+	}
+	default {
+	    # function is not user-defined in this case
+	}
+    }
+
+    return [list $declaration $definition]
+}
+
+# Generate a C++ class with the given CLASSNAME and LENGTH-many
+# integer elements.  The STATES is an array of 3 items
+# containing the desired state of the special functions
+# in this order:
+# copy constructor, destructor, move constructor
+
+proc generate_class { classname length states } {
+    set declarations ""
+    set definitions ""
+    set classname "${classname}_[join $states _]"
+
+    for {set i 0} {$i < [llength $states]} {incr i} {
+	set sig ""
+	switch $i {
+	    0 {set sig "$classname (const $classname \&rhs)"}
+	    1 {set sig "\~$classname (void)"}
+	    2 {set sig "$classname ($classname \&\&rhs)"}
+	}
+
+	set state [lindex $states $i]
+	set code [generate_member_function $classname $sig $length $state]
+	append declarations [lindex $code 0]
+	append definitions [lindex $code 1]
+    }
+
+    global ORIGINAL
+
+    return "
+    /*** C++ class $classname ***/
+    class ${classname} {
+    public:
+        $classname (void);
+        $declarations
+
+        int data\[$length\];
+    };
+
+    $classname\:\:$classname (void)
+    {
+        data\[0\] = $ORIGINAL;
+        data\[[expr $length - 1]\] = $ORIGINAL;
+    }
+
+    $definitions
+
+    $classname ${classname}_var; /* global var */
+
+    template int cbv<$classname> ($classname arg);"
+}
+
+# Generate a small C++ class
+
+proc generate_small_class { states } {
+    global SMALL
+    return [generate_class Small $SMALL $states];
+}
+
+# Generate a large C++ class
+
+proc generate_large_class { states } {
+    global LARGE
+    return [generate_class Large $LARGE $states];
+}
+
+# Generate a class that derives from a small class
+
+proc generate_derived_class { states } {
+    set base "Small_[join $states _]"
+    set classname "Derived_[join $states _]"
+
+    return "
+    /*** Class derived from $base ***/
+    class $classname : public $base {
+    public:
+    };
+
+    $classname ${classname}_var; /* global var */
+
+    template int cbv<$classname> ($classname arg);"
+}
+
+# Generate a class that contains a small class item
+
+proc generate_container_class { states } {
+    set contained "Small_[join $states _]"
+    set classname "Container_[join $states _]"
+
+    return "
+    /*** Class that contains $contained ***/
+    class $classname {
+    public:
+        $contained item;
+    };
+
+    $classname ${classname}_var; /* global var */
+
+    template int cbv_container<$classname> ($classname arg);"
+}
+
+# Generate useful statements that use a class in the debugee program
+
+proc generate_stmts { classprefix states {cbvfun "cbv"}} {
+    set classname "${classprefix}_[join $states _]"
+
+    # Having an explicit call to the cbv function in the debugee program
+    # ensures that the compiler will emit necessary function in the binary.
+    if {[is_copy_constructible $states]} {
+	set cbvcall "$cbvfun<$classname> (${classname}_var);\n"
+    } else {
+	set cbvcall ""
+    }
+
+    return "$cbvcall"
+}
+
+# Generate the complete debugee program
+
+proc generate_program { classes stmts } {
+    set copyright "/* This testcase is part of GDB, the GNU debugger.
+
+    Copyright 2007-2019 Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */"
+
+    global ADDED
+
+    return "$copyright
+
+    /*** THIS FILE IS GENERATED BY THE TEST.  ***/
+    /* If you regenerate, auto-indent and delete-trailing-whitespace
+       before committing.  */
+
+    static int tracer = 0;
+
+    /* The call-by-value function.  */
+    template <class T>
+    int
+    cbv (T arg)
+    {
+      arg.data\[0\] += $ADDED; // intentionally modify the arg
+      return arg.data\[0\];
+    }
+
+    template <class T>
+    int
+    cbv_container (T arg)
+    {
+      arg.item.data\[0\] += $ADDED;  // intentionally modify
+      return arg.item.data\[0\];
+    }
+
+    $classes
+
+    int
+    main (void)
+    {
+      $stmts
+
+      /* stop here */
+
+      return 0;
+    }"
+}
+
+# Compute all the combinations of special function states.
+# We do not contain the 'deleted' state for the destructor,
+# because it is illegal to have stack-allocated objects
+# whose destructor have been deleted.  This case is covered
+# in pass-by-ref-2 via heap-allocated objects.
+
+set options_nodelete [list absent explicit defaultedIn defaultedOut]
+set options [concat $options_nodelete {deleted}]
+set all_combinations {}
+
+foreach cctor $options {
+    foreach dtor $options_nodelete {
+	foreach mctor $options {
+	    lappend all_combinations [list $cctor $dtor $mctor]
+	}
+    }
+}
+
+if {$GENERATE_SOURCE} {
+    # Generate the classes and overwrite srcfile
+
+    set classes ""
+    set stmts ""
+
+    foreach state $all_combinations {
+	append classes [generate_small_class $state]
+	append stmts [generate_stmts "Small" $state]
+
+	append classes [generate_large_class $state]
+	append stmts [generate_stmts "Large" $state]
+
+	append classes [generate_derived_class $state]
+	append stmts [generate_stmts "Derived" $state]
+
+	append classes [generate_container_class $state]
+	append stmts [generate_stmts "Container" $state "cbv_container"]
+    }
+
+    # Generate the program code and compile
+    set program [generate_program $classes $stmts]
+    set testfolder [file dirname $testfile]
+    gdb_produce_source ${srcdir}/${subdir}/$srcfile $program
+}
+
+set options {debug c++ additional_flags=-std=c++11}
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile $options]} {
     return -1
 }
 
-if ![runto_main] then {
+if {![runto_main]} {
+    untested "failed to run to main"
     return -1
 }
 
-gdb_test "print foo (global_obj)" " = 3" "call function in obj"
-gdb_test "print blap (global_derived)" " = 3" "call function in derived"
-gdb_test "print blip (global_container)" " = 3" "call function in container"
+set bp_location [gdb_get_line_number "stop here"]
+gdb_breakpoint $bp_location
+gdb_continue_to_breakpoint "end of main" ".*return .*;"
+
+# Do the checks for a given class whose name is prefixed with PREFIX,
+# and whose special functions have the states given in STATES.
+# The name of the call-by-value function and the expression to access
+# the data field can be specified explicitly if the default values
+# do not work.
+
+proc test_for_class { prefix states cbvfun data_field length} {
+    set name "${prefix}_[join $states _]"
+
+    set cctor [lindex $states 0]
+    set dtor  [lindex $states 1]
+    set mctor [lindex $states 2]
+
+    global ORIGINAL
+    global CUSTOM
+    global ADDED
+    global TRACE
+
+    with_test_prefix $name {
+	if {[is_copy_constructible $states]} {
+	    set expected [expr {$ORIGINAL + $ADDED}]
+	    if {$cctor == "explicit"} {
+		set expected [expr {$CUSTOM + $ADDED}]
+	    }
+	    if {$dtor == "explicit"} {
+		gdb_test "print tracer = 0" " = 0" "reset the tracer"
+	    }
+	    gdb_test "print ${cbvfun}<$name> (${name}_var)" " = $expected" \
+		"call '$cbvfun'"
+	    gdb_test "print ${name}_var.${data_field}\[0\]" " = $ORIGINAL" \
+		"cbv argument should not change (item 0)"
+	    if {$length > 1} {
+		set last_index [expr $length - 1]
+		gdb_test "print ${name}_var.${data_field}\[$last_index\]" \
+		    " = $ORIGINAL" \
+		    "cbv argument should not change (item $last_index)"
+	    }
+	    if {$dtor == "explicit"} {
+		gdb_test "print tracer" " = $TRACE" \
+		    "destructor should be called"
+	    }
+	} else {
+	    gdb_test "print ${cbvfun}<$name> (${name}_var)" \
+		".* cannot be evaluated .* '${name}' is not copy constructible" \
+		"calling '$cbvfun' should be refused"
+	}
+    }
+}
+
+foreach state $all_combinations {
+    test_for_class "Small"     $state "cbv"           "data"      $SMALL
+    test_for_class "Large"     $state "cbv"           "data"      $LARGE
+    test_for_class "Derived"   $state "cbv"           "data"      1
+    test_for_class "Container" $state "cbv_container" "item.data" 1
+}
