------- Comment #1 from pcarlini at suse dot de  2007-11-04 20:41 -------
Gosh, this bug is horrible, the -basic- forwarding situation doesn't work with
variadic templates:

void foo(int&&);
void foo(const int&) { }

template<typename _Tp>
  struct identity
  {
    typedef _Tp type;
  };

template<typename _Tp>
  inline _Tp&&
  forward(typename identity<_Tp>::type&& __t)
  { return __t; }

template<typename _Args>
  void
  bar(_Args&& __args)
  {
    foo(forward<_Args>(__args));
  }

template<typename... _Args>
  void
  barv(_Args&&... __args)
  {
    foo(forward<_Args>(__args)...);
  }

int main()
{
  int a;

  bar(a);
  barv(a);
}

Doug, any chance you can have a look? Many thanks in advance!


-- 

pcarlini at suse dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pcarlini at suse dot de
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-11-04 20:41:13
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33939

Reply via email to