看見別人的帖子,也做了下。
代碼只支持內(nèi)建類型。
1
#include <iostream>
2
3
template<bool, typename T, typename F>
4
struct Select_type
{ typedef T R; };
5
6
template<typename T, typename F>
7
struct Select_type<false, T, F>
{ typedef F R; };
8
9
template<typename T, typename S>
10
struct Larger_type
{
11
typedef typename Select_type<sizeof(T) >= sizeof(S), T, S>::R R;
12
};
13
14
template<typename T, typename S>
15
typename Larger_type<T, S>::R min_value(T a, S b)
16

{
17
return a < b ? a : b;
18
}
19
20
21
int main()
22

{
23
int a = 2;
24
double b = 1.2;
25
std::cout << min_value(a, b) << " " << min_value(b, a) << "\n";
26
}
27
28

2

3

4



5

6

7



8

9

10



11

12

13

14

15

16



17

18

19

20

21

22



23

24

25

26

27

28

浮點(diǎn)數(shù)與整型進(jìn)行比較時(shí),默認(rèn)整型轉(zhuǎn)為浮點(diǎn)數(shù)





















































