gpt4 book ai didi

c++ - 为什么使用 std::bind() 时会收到 'returning address of local temporary' 警告?

转载 作者:太空宇宙 更新时间:2023-11-04 13:58:57 25 4
gpt4 key购买 nike

我正在尝试使用一段标准代码 (Josuttis) 将树的键绑定(bind)到一个函数,但 Visual Studio 2010 警告(并在我运行时崩溃):

.../functional(447): warning 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) ) );

此代码似乎在其他编译器中运行良好。

是否有任何隐藏在导致此错误的绑定(bind)的 windows 实现中?

最佳答案

代替:

&map<int,float>::value_type::first

使用:

&m::value_type::first

尽管这应该没什么区别,但那样您就不会使用本地临时文件。

关于c++ - 为什么使用 std::bind() 时会收到 'returning address of local temporary' 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20120943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com