diff liboctave/util/action-container.h @ 22869:f75d289645ec

make deleted functions public * octave-gui.h, resource-manager.h, shortcut-manager.h, base-text-renderer.h, c-file-ptr-stream.h, dynamic-ld.cc, dynamic-ld.h, event-queue.h, ft-text-renderer.cc, gl-render.cc, gl-render.h, graphics.cc, graphics.in.h, interpreter.h, mex.cc, mxarray.in.h, oct-fstrm.h, oct-iostrm.h, oct-prcstrm.h, oct-procbuf.h, oct-stdstrm.h, oct-stream.cc, oct-stream.h, oct-strstrm.h, octave-link.h, pager.h, profiler.h, sighandlers.cc, symtab.h, text-renderer.h, zfstream.h, __init_fltk__.cc, ov-builtin.h, ov-dld-fcn.h, ov-fcn.h, ov-mex-fcn.h, ov-typeinfo.h, ov-usr-fcn.h, octave.h, lex.h, parse.h, pt-arg-list.h, pt-array-list.h, pt-assign.h, pt-binop.h, pt-bp.h, pt-cell.h, pt-check.h, pt-classdef.h, pt-cmd.h, pt-colon.h, pt-const.h, pt-decl.h, pt-eval.h, pt-except.h, pt-exp.h, pt-fcn-handle.h, pt-funcall.h, pt-id.h, pt-idx.h, pt-jump.h, pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, pt-select.h, pt-stmt.h, pt-unop.h, pt-walk.h, pt.h, token.h, Array.cc, idx-vector.h, oct-fftw.h, sparse-chol.cc, sparse-qr.cc, file-ops.h, mach-info.h, oct-env.h, action-container.h, cmd-edit.cc, cmd-edit.h, cmd-hist.h, oct-locbuf.h, oct-mutex.h, oct-shlib.cc, oct-sort.h, pathsearch.h, singleton-cleanup.h, unwind-prot.h, url-transfer.cc, url-transfer.h: Declare deleted copy constructors and assignment operators public.
author John W. Eaton <jwe@octave.org>
date Tue, 06 Dec 2016 12:40:45 -0500
parents 87e3163f6c87
children ef4d915df748
line wrap: on
line diff
--- a/liboctave/util/action-container.h	Tue Dec 06 10:59:29 2016 -0500
+++ b/liboctave/util/action-container.h	Tue Dec 06 12:40:45 2016 -0500
@@ -42,21 +42,20 @@
   class elem
   {
   public:
-    elem (void) { }
-
-    virtual void run (void) { }
-
-    virtual ~elem (void) = default;
 
     friend class action_container;
 
-  private:
+    elem (void) { }
 
     // No copying!
 
     elem (const elem&) = delete;
 
     elem& operator = (const elem&) = delete;
+
+    virtual ~elem (void) = default;
+
+    virtual void run (void) { }
   };
 
   // An element that merely runs a void (*)(void) function.
@@ -64,12 +63,14 @@
   class fcn_elem : public elem
   {
   public:
+
     fcn_elem (void (*fptr) (void))
       : e_fptr (fptr) { }
 
     void run (void) { e_fptr (); }
 
   private:
+
     void (*e_fptr) (void);
   };
 
@@ -80,20 +81,22 @@
   class fcn_arg_elem : public elem
   {
   public:
+
     fcn_arg_elem (void (*fcn) (T), T arg)
       : e_fcn (fcn), e_arg (arg) { }
 
-    void run (void) { e_fcn (e_arg); }
-
-  private:
-
     // No copying!
 
     fcn_arg_elem (const fcn_arg_elem&) = delete;
 
     fcn_arg_elem& operator = (const fcn_arg_elem&) = delete;
 
+    void run (void) { e_fcn (e_arg); }
+
+  private:
+
     void (*e_fcn) (T);
+
     T e_arg;
   };
 
@@ -105,13 +108,16 @@
   class fcn_crefarg_elem : public elem
   {
   public:
+
     fcn_crefarg_elem (void (*fcn) (const T&), const T& arg)
       : e_fcn (fcn), e_arg (arg) { }
 
     void run (void) { e_fcn (e_arg); }
 
   private:
+
     void (*e_fcn) (const T&);
+
     T e_arg;
   };
 
@@ -121,21 +127,23 @@
   class method_elem : public elem
   {
   public:
+
     method_elem (T *obj, void (T::*method) (void))
       : e_obj (obj), e_method (method) { }
 
+    // No copying!
+
+    method_elem (const method_elem&) = delete;
+
+    method_elem operator = (const method_elem&) = delete;
+
     void run (void) { (e_obj->*e_method) (); }
 
   private:
 
     T *e_obj;
+
     void (T::*e_method) (void);
-
-    // No copying!
-
-    method_elem (const method_elem&) = delete;
-
-    method_elem operator = (const method_elem&) = delete;
   };
 
   // An element for calling a member function with a single argument
@@ -144,22 +152,25 @@
   class method_arg_elem : public elem
   {
   public:
+
     method_arg_elem (T *obj, void (T::*method) (A), A arg)
       : e_obj (obj), e_method (method), e_arg (arg) { }
 
+    // No copying!
+
+    method_arg_elem (const method_arg_elem&) = delete;
+
+    method_arg_elem operator = (const method_arg_elem&) = delete;
+
     void run (void) { (e_obj->*e_method) (e_arg); }
 
   private:
 
     T *e_obj;
-    void (T::*e_method) (A);
-    A e_arg;
 
-    // No copying!
+    void (T::*e_method) (A);
 
-    method_arg_elem (const method_arg_elem&) = delete;
-
-    method_arg_elem operator = (const method_arg_elem&) = delete;
+    A e_arg;
   };
 
   // An element for calling a member function with a single argument
@@ -168,22 +179,25 @@
   class method_crefarg_elem : public elem
   {
   public:
+
     method_crefarg_elem (T *obj, void (T::*method) (const A&), const A& arg)
       : e_obj (obj), e_method (method), e_arg (arg) { }
 
+    // No copying!
+
+    method_crefarg_elem (const method_crefarg_elem&) = delete;
+
+    method_crefarg_elem operator = (const method_crefarg_elem&) = delete;
+
     void run (void) { (e_obj->*e_method) (e_arg); }
 
   private:
 
     T *e_obj;
-    void (T::*e_method) (const A&);
-    A e_arg;
 
-    // No copying!
+    void (T::*e_method) (const A&);
 
-    method_crefarg_elem (const method_crefarg_elem&) = delete;
-
-    method_crefarg_elem operator = (const method_crefarg_elem&) = delete;
+    A e_arg;
   };
 
   // An element that stores arbitrary variable, and restores it.
@@ -192,19 +206,20 @@
   class restore_var_elem : public elem
   {
   public:
+
     restore_var_elem (T& ref, const T& val)
       : e_ptr (&ref), e_val (val) { }
 
-    void run (void) { *e_ptr = e_val; }
-
-  private:
-
     // No copying!
 
     restore_var_elem (const restore_var_elem&) = delete;
 
     restore_var_elem& operator = (const restore_var_elem&) = delete;
 
+    void run (void) { *e_ptr = e_val; }
+
+  private:
+
     T *e_ptr, e_val;
   };
 
@@ -214,24 +229,31 @@
   class delete_ptr_elem : public elem
   {
   public:
+
     delete_ptr_elem (T *ptr)
       : e_ptr (ptr) { }
 
+    // No copying!
+
+    delete_ptr_elem (const delete_ptr_elem&) = delete;
+
+    delete_ptr_elem operator = (const delete_ptr_elem&) = delete;
+
     void run (void) { delete e_ptr; }
 
   private:
 
     T *e_ptr;
-
-    // No copying!
-
-    delete_ptr_elem (const delete_ptr_elem&) = delete;
-
-    delete_ptr_elem operator = (const delete_ptr_elem&) = delete;
   };
 
   action_container (void) { }
 
+  // No copying!
+
+  action_container (const action_container&) = delete;
+
+  action_container& operator = (const action_container&) = delete;
+
   virtual ~action_container (void) = default;
 
   virtual void add (elem *new_elem) = 0;
@@ -330,14 +352,6 @@
   virtual size_t size (void) const = 0;
 
   bool empty (void) const { return size () == 0; }
-
-private:
-
-  // No copying!
-
-  action_container (const action_container&) = delete;
-
-  action_container& operator = (const action_container&) = delete;
 };
 
 #endif