From: Akim Demaille Date: Mon, 28 Jan 2013 13:56:16 +0000 (+0100) Subject: c++: remove now-useless operators X-Git-Tag: v2.7.90~150 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/7d1aa2d6365c103a4ae5e4c336b7c8bc3234df4f 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". --- diff --git a/data/c++.m4 b/data/c++.m4 index 591e3e8f..6950360e 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 a06c73c7..0afceeac 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 5a05db76..cac4260b 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 bbae8cb9..da0d2a39 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.