「C ++プログラミング言語第4版」第12.1.4章
戻り値の型は、関数を宣言/定義するときに戻り値を置きます。
auto getValue(int value)->int
{
return value*2;
}
この使用法は主にテンプレートで使用され、戻り値のタイプを判別できない場合があります。
template<class T1,class T2>
auto getValue(T1 v1,T2 v2)->decltype (v1 + v2)
{
return v1 + v2;
}
#define debug qDebug()<<
int main(int argc, char *argv[])
{
debug getValue<int,int>(7,5.5);
debug getValue<int,double>(7,5.5);
}
この関数が2つのintで渡される場合、戻り値の型はintであり、1つのintとdoubleが渡される場合、戻り値の型はdoubleです。