C++已经有了引用操作符&为什么C++11还要引
答案:4 悬赏:0 手机版
解决时间 2021-03-11 16:13
- 提问者网友:练爱
- 2021-03-11 12:37
C++已经有了引用操作符&为什么C++11还要引
最佳答案
- 五星知识达人网友:迟山
- 2021-03-11 14:01
还不是为了所谓的新特性.作
std::ref通常与模版配合使用,使模版参数推断为引用传递
比如 std::for_each 第三个参数要接受引用时,就必须用 std::ref.
再比如
template< typename T >
struct Example
{
typedef typename T::ref MyReference;
..............
};域操作符的操作数必须是id,而&不是id。
std::ref通常与模版配合使用,使模版参数推断为引用传递
比如 std::for_each 第三个参数要接受引用时,就必须用 std::ref.
再比如
template< typename T >
struct Example
{
typedef typename T::ref MyReference;
..............
};域操作符的操作数必须是id,而&不是id。
全部回答
- 1楼网友:野慌
- 2021-03-11 15:52
char *p = (char *)malloc(100);
- 2楼网友:愁杀梦里人
- 2021-03-11 15:31
#include
#include
void foo(int& a) {
++a;
}
void test_function(std::function fun) {
fun();
}
int main() {
int a = 1;
std::cout << "a = " << a << "\n";
test_function(std::bind(foo, a));
std::cout << "a = " << a << "\n";
test_function(std::bind(foo, std::ref(a)));
std::cout << "a = " << a << "\n";
return 0;
}
sexType sex;
#include
void foo(int& a) {
++a;
}
void test_function(std::function fun) {
fun();
}
int main() {
int a = 1;
std::cout << "a = " << a << "\n";
test_function(std::bind(foo, a));
std::cout << "a = " << a << "\n";
test_function(std::bind(foo, std::ref(a)));
std::cout << "a = " << a << "\n";
return 0;
}
sexType sex;
- 3楼网友:人间朝暮
- 2021-03-11 14:38
疑似假用户11222
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯