gpt4 book ai didi

c++ - std::bind 涉及到临时类拷贝时的模板推导

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:49:37 25 4
gpt4 key购买 nike

这是std::bind的模板头:

template< class R, class F, class... Args >
bind( F&& f, Args&&... args );

我们可以根据我们想要实现的目标来绑定(bind)特定的函数,比如成员函数或者普通函数。

虽然我担心的是:如果我们做类似的事情:

auto p = std::bind(&miguel::changex,&m,1);    //miguel is a class and changex is the function

我们通过引用绑定(bind)它,因此任何更改肯定会影响原始内容。

如果我们这样做:

auto p = std::bind(&miguel::changex,m,1);    //miguel is a class and changex is the function

这将是一个拷贝,所做的任何更改都不会反射(reflect)到原始文件中。

我的问题:

bind( F&& f, Args&&... args ); 当它们都采用 universal reference 时如何评估拷贝?

最佳答案

auto p = std::bind(&miguel::changex,&m,1); 

这里的&m是传递一个指向m绑定(bind)的指针,而不是引用,所以任何改变肯定会影响到原来的。

关于c++ - std::bind 涉及到临时类拷贝时的模板推导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31443760/

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