[Bug libstdc++/52612] std::tr1::bind doesn't work with placeholders

2012-03-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52612

--- Comment #4 from Jonathan Wakely  2012-03-19 
11:24:15 UTC ---
Yeah, it's not ideal, but I have very little motivation (and even less time!)
to improve tr1::bind now. For C++03 code there's boost::bind and for C++11 code
there's std::bind.


[Bug libstdc++/52612] std::tr1::bind doesn't work with placeholders

2012-03-19 Thread anthony.ajw at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52612

--- Comment #3 from Anthony Williams  2012-03-19 
11:15:45 UTC ---
It's frustrating that the TR1 spec specifies lvalues (I assumed it was the same
as std::bind). This came up in supposedly-portable code that works with MSVC's
TR1 bind.

Good thing it's fixed for std::bind.


[Bug libstdc++/52612] std::tr1::bind doesn't work with placeholders

2012-03-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52612

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE

--- Comment #2 from Jonathan Wakely  2012-03-19 
10:57:38 UTC ---
See my comments on PR 50320

C++11 std::bind works with rvalues, as of GCC 4.5

*** This bug has been marked as a duplicate of bug 35569 ***


[Bug libstdc++/52612] std::tr1::bind doesn't work with placeholders

2012-03-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52612

--- Comment #1 from Paolo Carlini  2012-03-19 
10:39:10 UTC ---
I seem to remember that this is a known problem of the tr1 version of this
facility, per the specs. Changing the snippet like the following works:

  ...

  int main()
  {
int n = 5;
std::tr1::bind(return_int2,32,std::tr1::placeholders::_1)(n);
  }