# 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
other.destroy<T>();
}
+ /// Copy the content of \a other to this.
+ /// Destroys \a other.
+ template <typename T>
+ inline void
+ copy (const variant<S>& other)
+ {
+ build<T> (other.as<T> ());
+ }
+
/// Destroy the stored \a T.
template <typename T>
inline void
tname = YY_NULL;])[
}
+ /// Prohibit blind copies.
+ // private:
+ self_type& operator=(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