我必须对这段代码做些什么才能使其编译,它绕着这条线刹车:

自动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/

10-15 06:03