From 7d1aa2d6365c103a4ae5e4c336b7c8bc3234df4f Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Mon, 28 Jan 2013 14:56:16 +0100 Subject: [PATCH] c++: remove now-useless operators 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::basic_symbol () : value () {} -]b4_locations_if([ - template - ]b4_parser_class_name[::basic_symbol::basic_symbol (const location_type& l) - : value () - , location (l) - {}])[ - - template - ]b4_parser_class_name[::basic_symbol& - ]b4_parser_class_name[::basic_symbol::operator= (const basic_symbol&) - { - abort (); - } template ]b4_parser_class_name[::basic_symbol::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 // abort #include #include #include ]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 ])[ -# include // abort # include # include # include @@ -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], [$@])dnl # The needed includes for variants support. m4_define([b4_variant_includes], [b4_parse_assert_if([[#include ]])[ -#include // abort #ifndef YYASSERT # include # 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. -- 2.7.4