一般的な最小関数を書いて、2 つの質問が頭に浮かびました。コードは、任意の入力タイプと異なる引数番号で正常に動作します。
namespace xyz
{
template <typename T1, typename T2>
auto min(const T1 &a, const T2 &b) -> decltype(a+b)
{
return a < b ? a : b;
}
template <typename T1, typename T2, typename ... Args>
auto min(const T1 &a, const T2 &b, Args ... args) -> decltype(a+b)
{
return min(min(a, b), args...);
}
}
int main()
{
cout << xyz::min(4, 5.8f, 3, 1.8, 3, 1.1, 9) << endl;
// ^ ^ ^
// | | |
// float double int
}
のより良い代替品はあり
decltype(a+b)
ますか?覚えていない標準クラスがあると思いますdecltype(std::THE_RESULT<a,b>::type)
.返される型は
decltype(std::THE_RESULT<a,b>::type)
isconst &
か not ?