我必须对这段代码做些什么才能使其编译,它绕着这条线刹车:
自动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进行编译。
最佳答案
VS2008不支持自动。使用VS2010和更高版本,或支持此功能的其他编译器。
关于c++ - 如何在C++(C++ 0x)中使用“自动”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2924901/