我想知道我是否自己上课,并且这样做:
class my{
/*some things*/
}myobj;
然后
auto newobj = myobj;
auto
会认出这个myobj吗?它是否也适用于结构?
答案 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