如何找到两个整数类型的最大(大小)?

chi*_*ila 6 c++

例如:

template <typename Type1, typename Type2>
void fun(const Type1 &v1, const Type2 &v2)
{
    largest<Type1, Type2>::type val = v1 + v2;
    .
    .
    .
};
Run Code Online (Sandbox Code Playgroud)

我想知道某个地方是否有"最大",也许是在提升.

Ale*_*tov 13

template<bool, typename T1, typename T2>
struct is_cond {
    typedef T1 type;
};

template<typename T1, typename T2>
struct is_cond<false, T1, T2> {
    typedef T2 type;
};

template<typename T1, typename T2>
struct largest {
     typedef typename is_cond< (sizeof(T1)>sizeof(T2)), T1, T2>::type type;
};
Run Code Online (Sandbox Code Playgroud)

  • @Neil Butterworth:`最大的<int,double> :: type d; cout << sizeof(d)<< endl;`print 8.注意!`maximum <int,double> :: type`而不是`maximum <int,double>` (5认同)