c++: privatize variant blind copies

* data/variant.hh (variant, operator=): Make private.
* data/c++.m4 (operator=): New, to avoid needing a definition of that operator
for each class member (such as a possible variant).
* data/glr.cc, data/lalr.cc: Add the necessary include for the abort.
This commit is contained in:
Theophile Ranquet
2013-01-11 11:41:07 +01:00
parent 39ad6cc6ac
commit 04816a6f32
4 changed files with 14 additions and 1 deletions

View File

@@ -186,6 +186,9 @@ m4_define([b4_public_types_declare],
[const semantic_type& v],
b4_locations_if([const location_type& l]))[);
/// Assignment operator.
inline basic_symbol& operator= (const basic_symbol& other);
/// Destructive move, \a s is emptied.
inline void move (basic_symbol& s);
@@ -250,6 +253,14 @@ m4_define([b4_public_types_define],
, location (l)
{}])[
template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>&
]b4_parser_class_name[::basic_symbol<Base>::operator= (const basic_symbol& other)
{
abort ();
}
template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (const basic_symbol& other)