* data/c++m4: Remove useless comment lines.
* data/variant.hh (self_type): Use this typedef instead of variant<S>.
(b4_symbol_constructor_define_): Remove commented-out line, and stylistic
change (avoid blank line).
       enum { empty = 0 };
 
       /// The symbol type.
       enum { empty = 0 };
 
       /// The symbol type.
       /// -1 when this symbol is empty.
       token_number_type type;
     };
       /// -1 when this symbol is empty.
       token_number_type type;
     };
 
     /// variant::move ().
     template <typename T>
     void
     /// variant::move ().
     template <typename T>
     void
-    swap (variant<S>& other)
+    swap (self_type& other)
     {]b4_parse_assert_if([
       YYASSERT (built);
       YYASSERT (other.built);
     {]b4_parse_assert_if([
       YYASSERT (built);
       YYASSERT (other.built);
     /// Destroys \a other.
     template <typename T>
     void
     /// Destroys \a other.
     template <typename T>
     void
-    move (variant<S>& other)
+    move (self_type& other)
     {]b4_parse_assert_if([
       YYASSERT (! built);])[
       build<T>();
     {]b4_parse_assert_if([
       YYASSERT (! built);])[
       build<T>();
     /// Copy the content of \a other to this.
     template <typename T>
     void
     /// Copy the content of \a other to this.
     template <typename T>
     void
-    copy (const variant<S>& other)
+    copy (const self_type& other)
     {
       build<T> (other.as<T> ());
     }
     {
       build<T> (other.as<T> ());
     }
         b4_locations_if([const location_type& l])))[
   {
     symbol_type res (token::]b4_symbol([$1], [id])[]b4_locations_if([, l])[);
         b4_locations_if([const location_type& l])))[
   {
     symbol_type res (token::]b4_symbol([$1], [id])[]b4_locations_if([, l])[);
-    ]b4_symbol_if([$1], [has_type], [res.value.build (v);])[
-    //    ]b4_locations_if([res.location = l;])[
-    return res;
+    ]b4_symbol_if([$1], [has_type], [res.value.build (v);
+    ])[return res;