[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
- [PATCH 0/6] {master} c++: variant overhaul, Akim Demaille, 2013/01/28
- [PATCH 3/6] tests: enable support for --debug, Akim Demaille, 2013/01/28
- [PATCH 2/6] c++: revamp the support for variants, Akim Demaille, 2013/01/28
- [PATCH 4/6] c++: remove now-useless operators,
Akim Demaille <=
- [PATCH 5/6] tests: remove useless %defines, Akim Demaille, 2013/01/28
- [PATCH 6/6] tests: check that using variants is exception safe, Akim Demaille, 2013/01/28
- [PATCH 1/6] c++: formatting and comment changes, Akim Demaille, 2013/01/28