diff options
author | Anthony Heading <ajrh@ajrh.net> | 2022-04-29 04:08:35 -0400 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2022-09-03 09:37:07 +0200 |
commit | eb83487606276fdefd20415176aff9309a62a5ee (patch) | |
tree | dc62f8027b04c30b88a464ef99f7347fb57c50c7 | |
parent | ec9c5556d9b4c18dbd3917b44a3a3e5c94670b5e (diff) | |
download | bison-eb83487606276fdefd20415176aff9309a62a5ee.tar.gz |
c++: enable C++11 assignment operators for lalr1.cc
<https://github.com/akimd/bison/pull/85>
<https://lists.gnu.org/r/bug-bison/2022-04/msg00000.html>
* data/skeletons/c++.m4: Enable C++11 assignment operators for
all C++ skeletons.
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | data/skeletons/c++.m4 | 12 |
2 files changed, 8 insertions, 6 deletions
@@ -6,6 +6,8 @@ GNU Bison NEWS Fixed spurious warnings about input containing `m4_` or `b4_`. + The C++ skeletons now expose copy and move operators for symbols. + * Noteworthy changes in release 3.8.2 (2021-09-25) [stable] Fixed portability issues of bison on Cygwin. diff --git a/data/skeletons/c++.m4 b/data/skeletons/c++.m4 index 78f71fce..d63d1548 100644 --- a/data/skeletons/c++.m4 +++ b/data/skeletons/c++.m4 @@ -346,7 +346,7 @@ m4_define([b4_symbol_type_define], clear (); } -]b4_glr2_cc_if([[ +#if 201103L <= YY_CPLUSPLUS /// Copy assignment. basic_symbol& operator= (const basic_symbol& that) { @@ -368,7 +368,7 @@ m4_define([b4_symbol_type_define], location = std::move (that.location);]])[ return *this; } -]])[ +#endif /// Destroy contents, and record that is empty. void clear () YY_NOEXCEPT @@ -454,13 +454,13 @@ m4_define([b4_symbol_type_define], /// Constructor from (external) token numbers. by_kind (kind_type t) YY_NOEXCEPT; -]b4_glr2_cc_if([[ +#if 201103L <= YY_CPLUSPLUS /// Copy assignment. by_kind& operator= (const by_kind& that); /// Move assignment. by_kind& operator= (by_kind&& that); -]])[ +#endif /// Record that this symbol is empty. void clear () YY_NOEXCEPT; @@ -584,7 +584,7 @@ m4_define([b4_public_types_define], : kind_ (yytranslate_ (t)) {} -]b4_glr2_cc_if([[ +#if 201103L <= YY_CPLUSPLUS ]b4_inline([$1])]b4_parser_class[::by_kind& b4_parser_class[::by_kind::by_kind::operator= (const by_kind& that) { @@ -599,7 +599,7 @@ m4_define([b4_public_types_define], that.clear (); return *this; } -]])[ +#endif ]b4_inline([$1])[void ]b4_parser_class[::by_kind::clear () YY_NOEXCEPT |