bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 4/6] c++: remove now-useless operators


From: Akim Demaille
Subject: [PATCH 4/6] c++: remove now-useless operators
Date: Mon, 28 Jan 2013 16:34:15 +0100

Now that symbols behaves properly, we can eliminate special routines
that are no longer needed.

* data/c++.m4, data/glr.cc, data/lalr1.cc, data/variant.hh:
Remove useless assignment operators and copy constructors.
As a consequence, remove useless includes for "abort".
---
 data/c++.m4     | 22 ++++------------------
 data/glr.cc     |  1 -
 data/lalr1.cc   |  2 +-
 data/variant.hh | 15 +++------------
 4 files changed, 8 insertions(+), 32 deletions(-)

diff --git a/data/c++.m4 b/data/c++.m4
index 591e3e8..6950360 100644
--- a/data/c++.m4
+++ b/data/c++.m4
@@ -171,9 +171,6 @@ m4_define([b4_public_types_declare],
 
       /// Default constructor.
       inline basic_symbol ();
-]b4_locations_if([
-      /// Constructor.
-      inline basic_symbol (const location_type& l);])[
 
       /// Copy constructor.
       inline basic_symbol (const basic_symbol& other);
@@ -188,8 +185,6 @@ m4_define([b4_public_types_declare],
                            const location_type& l])[);
 
       ~basic_symbol ();
-      /// Assignment operator.
-      inline basic_symbol& operator= (const basic_symbol& other);
 
       /// Destructive move, \a s is emptied into this.
       inline void move (basic_symbol& s);
@@ -199,6 +194,10 @@ m4_define([b4_public_types_declare],
 
       /// The location.
       location_type location;])[
+
+    private:
+      /// Assignment operator.
+      basic_symbol& operator= (const basic_symbol& other);
     };
 
     /// Type access provider for token (enum) based symbols.
@@ -254,19 +253,6 @@ m4_define([b4_public_types_define],
   ]b4_parser_class_name[::basic_symbol<Base>::basic_symbol ()
     : value ()
   {}
-]b4_locations_if([
-  template <typename Base>
-  ]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (const 
location_type& l)
-    : value ()
-    , location (l)
-  {}])[
-
-  template <typename Base>
-  ]b4_parser_class_name[::basic_symbol<Base>&
-  ]b4_parser_class_name[::basic_symbol<Base>::operator= (const basic_symbol&)
-  {
-    abort ();
-  }
 
   template <typename Base>
   ]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (const 
basic_symbol& other)
diff --git a/data/glr.cc b/data/glr.cc
index a06c73c..0afceea 100644
--- a/data/glr.cc
+++ b/data/glr.cc
@@ -253,7 +253,6 @@ m4_define([b4_shared_declarations],
 [m4_pushdef([b4_parse_param], m4_defn([b4_parse_param_orig]))dnl
 b4_percent_code_get([[requires]])[
 
-#include <cstdlib>  // abort
 #include <stdexcept>
 #include <string>
 #include <iostream>]b4_defines_if([
diff --git a/data/lalr1.cc b/data/lalr1.cc
index 5a05db7..cac4260 100644
--- a/data/lalr1.cc
+++ b/data/lalr1.cc
@@ -146,7 +146,6 @@ b4_variant_if([m4_include(b4_pkgdatadir/[variant.hh])])
 m4_define([b4_shared_declarations],
 [b4_percent_code_get([[requires]])[
 ]b4_parse_assert_if([# include <cassert>])[
-# include <cstdlib>  // abort
 # include <vector>
 # include <iostream>
 # include <stdexcept>
@@ -308,6 +307,7 @@ b4_location_define])])[
       stack_symbol_type ();
       /// Steal the contents from \a sym to build this.
       stack_symbol_type (state_type s, symbol_type& sym);
+      /// Assignment, needed by push_back.
       stack_symbol_type& operator= (const stack_symbol_type& that);
     };
 
diff --git a/data/variant.hh b/data/variant.hh
index bbae8cb..da0d2a3 100644
--- a/data/variant.hh
+++ b/data/variant.hh
@@ -72,7 +72,6 @@ m4_map([      b4_symbol_tag_comment], address@hidden)dnl
 # The needed includes for variants support.
 m4_define([b4_variant_includes],
 [b4_parse_assert_if([[#include <typeinfo>]])[
-#include <cstdlib>  // abort
 #ifndef YYASSERT
 # include <cassert>
 # define YYASSERT assert
@@ -213,19 +212,11 @@ m4_define([b4_variant_define],
       tname = YY_NULL;])[
     }
 
+  private:
     /// Prohibit blind copies.
-    private:
-    self_type& operator=(const self_type&)
-    {
-      abort ();
-    }
+    self_type& operator=(const self_type&);
+    variant (const self_type&);
 
-    variant (const self_type&)
-    {
-      abort ();
-    }
-
-  private:
     /// A buffer large enough to store any of the semantic values.
     /// Long double is chosen as it has the strongest alignment
     /// constraints.
-- 
1.8.1.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]