首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

std:ref的用法遇到一个编译异常

2012-06-05 
std::ref的用法遇到一个编译错误!下面这段代码编译有错误:C/C++ code#includeiostreamusing namespace s

std::ref的用法遇到一个编译错误!
下面这段代码编译有错误:

C/C++ code
#include<iostream>using namespace std;struct s{    int i;    s():i(11){cout<<__FUNCTION__<<endl;}    s(const s& ss):i(ss.i){cout<<__FUNCTION__<<endl;}    s& operator=(const s&ss){i=ss.i;cout<<__FUNCTION__<<endl;}};template<typename T>void f( T t ){    cout<<t.i<<endl;    cout<<__FUNCTION__<<endl;}int main(void){    s s1;    f( std::cref(s1) );    return 0;}

VC10说:
 error C2039: “i”: 不是“std::tr1::reference_wrapper<_Ty>”的成员

我的代码错误在哪里? 我希望参数传递给f的时候,不要调用拷贝构造函数,要用一个ref的形式传进去。
怎么改呢?

[解决办法]
cout<<t.get().i<<endl;
这样?

热点排行
Bad Request.