C++11 std::ref
来源:互联网 发布:软件开发可行性分析 编辑:程序博客网 时间:2024/05/14 19:03
void func(int& val)
{
val = 10;
}
int main()
{
int val = 0;
std::bind(func, val)();
std::cout << val << std::endl;
std::bind(func, std::ref(val))();
std::cout << val << std::endl;
}
输出:
0
10
原因嘛,std::bind构造的对象内部保存对象拷贝,引用传参给被绑定的函数时传的是bind构造的对象内部保存的参数的引用,而非被绑定参数的引用,std::ref就是为了解决这(一类)问题
{
val = 10;
}
int main()
{
int val = 0;
std::bind(func, val)();
std::cout << val << std::endl;
std::bind(func, std::ref(val))();
std::cout << val << std::endl;
}
输出:
0
10
原因嘛,std::bind构造的对象内部保存对象拷贝,引用传参给被绑定的函数时传的是bind构造的对象内部保存的参数的引用,而非被绑定参数的引用,std::ref就是为了解决这(一类)问题
当然传指针的话就这问题了
via:http://tieba.baidu.com/p/1292003201
0 0
- C++11 std::ref
- std::ref
- std::ref, std::cref
- 为什么C++11引入了std::ref?
- std::ref 有什么用
- 当std::ref遇到前置声明
- C#-ref关键字
- [C#]Out Ref
- c#ref与out
- c#params ref out
- C#ref 使用
- 【C#】ref 和 out
- [C/C++]关于C++11中的std::move和std::forward
- [C/C++]关于C++11中的std::move和std::forward
- [C/C++]关于C++11中的std::move和std::forward
- 【C/C++】C++11新特性:std::bind
- C++~~~std::sort
- 【C++】std::copy
- 常吃七种蔬菜帮助你自然美白
- MySQL(基础篇)之聚合函数
- AndroidManifest.xml文件详解(provider)
- 汇编中的PTR含义/用法
- 在 Ubuntu 上使用 sshfs 映射远程 ssh 文件系统为本地磁盘
- C++11 std::ref
- JavaWeb:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- Java I/O流之管道流-多线程实现
- Android中Bitmap,byte[],Drawable相互转化
- JS 判断变量是否为空
- fopen_s
- [课程地图-jsp网站]界面布局html,js和css要求
- spring mvc 配置文件
- 张三丰