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;])[
}
- /// Prohibit blind copies.
- private:
- self_type& operator=(const self_type&)
- {
- abort ();
- }
-
- variant (const self_type&)
- {
- abort ();
- }
-
private:
+ /// Prohibit blind copies.
+ self_type& operator=(const self_type&);
+ variant (const self_type&);
+
/// A buffer large enough to store any of the semantic values.
/// Long double is chosen as it has the strongest alignment
/// constraints.