是' auto'在C ++中识别自定义数据类型?

时间:2016-04-05 13:37:36

标签: c++ class c++11 structure auto

我想知道我是否自己上课,并且这样做:

class my{
/*some things*/
}myobj;

然后

auto newobj = myobj;

auto会认出这个myobj吗?它是否也适用于结构?

1 个答案:

答案 0 :(得分:2)

答案是肯定的,因为您可能已经检查过编译它。规则与模板参数推导相同。您可以随时检查IDE中给定自动变量的推断类型,或者使用编译器错误,例如:

class my{
/*some things*/
}myobj;

template<typename T> class TD;

int main()
{
    auto newobj = myobj;
    TD<decltype(newobj)> td;
}

产生错误:

main.cpp:14:26: error: aggregate 'TD<my> td' has incomplete type and cannot be defined
     TD<decltype(newobj)> td;

为您提供newobj类型为my

的信息