我正在尝试使用标准代码(Josuttis)将树的键绑定到函数, 但Visual Studio 2010警告(并在运行时崩溃):
... / functional(447):警告C4172:返回本地临时的地址
代码是:
void print(int x) { ... }
using namespace std;
map<int, float> m;
for_each(m.begin(), m.end(),
bind( print,
bind( &map<int,float>::value_type::first, placeholders::_1) ) );
这段代码好像在其他编译器中工作正常。
在Windows的Windows实现中是否有任何隐藏导致此错误的内容?
答案 0 :(得分:0)
而不是:
&map<int,float>::value_type::first
使用:
&m::value_type::first
尽管它不应该有所作为,这样你就不会使用本地临时。