This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/52612] New: std::tr1::bind doesn't work with placeholders
- From: "anthony.ajw at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 19 Mar 2012 09:45:02 +0000
- Subject: [Bug libstdc++/52612] New: std::tr1::bind doesn't work with placeholders
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52612
Bug #: 52612
Summary: std::tr1::bind doesn't work with placeholders
Classification: Unclassified
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: anthony.ajw@gmail.com
Created attachment 26913
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26913
Example code that fails
The following simple code doesn't compile:
#include <tr1/functional>
int return_int2(int,int)
{
return 42;
}
int main(){
std::tr1::bind(return_int2,32,std::tr1::placeholders::_1)(5);
}
Compiler output:
$g++ t2.cpp
t2.cpp: In function âint main()â:
t2.cpp:9:64: error: no match for call to â(std::tr1::_Bind<int (*(int,
std::tr1::_Placeholder<1>))(int, int)>) (int)â
/usr/include/c++/4.6/tr1/functional:1134:11: note: candidates are:
/usr/include/c++/4.6/tr1/functional:1205:9: note: typename
std::tr1::result_of<_Functor(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args>(_Bound_args,
std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor(_Bound_args ...)>::operator()(_Args& ...) [with _Args
= {int}, _Functor = int (*)(int, int), _Bound_args = {int,
std::tr1::_Placeholder<1>}, typename std::tr1::result_of<_Functor(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args>(_Bound_args,
std::tr1::tuple<_UElements ...>)>::type ...)>::type = int]
/usr/include/c++/4.6/tr1/functional:1205:9: note: no known conversion for
argument 1 from âintâ to âint&â
/usr/include/c++/4.6/tr1/functional:1216:9: note: typename
std::tr1::result_of<const _Functor(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args>(_Bound_args,
std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor(_Bound_args ...)>::operator()(_Args& ...) const [with
_Args = {int}, _Functor = int (*)(int, int), _Bound_args = {int,
std::tr1::_Placeholder<1>}, typename std::tr1::result_of<const
_Functor(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args>(_Bound_args,
std::tr1::tuple<_UElements ...>)>::type ...)>::type = int]
/usr/include/c++/4.6/tr1/functional:1216:9: note: no known conversion for
argument 1 from âintâ to âint&â
/usr/include/c++/4.6/tr1/functional:1228:9: note: typename
std::tr1::result_of<volatile _Functor(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args>(_Bound_args,
std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor(_Bound_args ...)>::operator()(_Args& ...) volatile
[with _Args = {int}, _Functor = int (*)(int, int), _Bound_args = {int,
std::tr1::_Placeholder<1>}, typename std::tr1::result_of<volatile
_Functor(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args>(_Bound_args,
std::tr1::tuple<_UElements ...>)>::type ...)>::type = int]
/usr/include/c++/4.6/tr1/functional:1228:9: note: no known conversion for
argument 1 from âintâ to âint&â
/usr/include/c++/4.6/tr1/functional:1241:9: note: typename
std::tr1::result_of<const volatile _Functor(typename
std::tr1::result_of<std::tr1::_Mu<_Bound_args>(_Bound_args,
std::tr1::tuple<_UElements ...>)>::type ...)>::type
std::tr1::_Bind<_Functor(_Bound_args ...)>::operator()(_Args& ...) const
volatile [with _Args = {int}, _Functor = int (*)(int, int), _Bound_args = {int,
std::tr1::_Placeholder<1>}, typename std::tr1::result_of<const volatile
_Functor(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args>(_Bound_args,
std::tr1::tuple<_UElements ...>)>::type ...)>::type = int]
/usr/include/c++/4.6/tr1/functional:1241:9: note: no known conversion for
argument 1 from âintâ to âint&â
$ g++ --version
g++ (Ubuntu 4.6.0-3~ppa1) 4.6.1 20110409 (prerelease)
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.