我该怎么做才能编译这个代码,它是围绕这条线制动的:如何在C++(C++ 0x)中使用'auto'?
auto val = what.getObject();
#include<iostream>
using namespace std;
class CUP{
public:
void whatsHappening(){}
};
class MUG{
public:
void whatsHappening(){}
};
class CupThrower{
public:
CUP cp;
CUP getObject(){ return cp;}
};
class MugThrower{
public:
MUG mg;
MUG getObject(){return mg;}
};
template <typename T> void whatsHappening(T what){
auto val = what.getObject(); //DOES NOT COMPILE
val.whatsHappening();
}
int main(){
CupThrower ct;
MugThrower mt;
whatsHappening(ct);
whatsHappening(mt);
return 0;
}
我正在使用VS2008进行编译。
发布您正在收到的实际错误将会很有帮助。另外,你在使用什么编译器? – cake 2010-05-27 21:04:36
我正在使用VS2008,错误太长发帖 – LoudNPossiblyWrong 2010-05-27 21:07:32
VS2008不支持'auto',移动到VS2010或GCC 4.4/4.5。 – AraK 2010-05-27 21:09:05