Slide 4
Slide 4 text
Practice —
Function
Template
Instantiation &
Overload
Resolution
/
/ (
a
)
t
e
m
p
l
a
t
e
<
t
y
p
e
n
a
m
e T
, t
y
p
e
n
a
m
e U
>
i
n
t c
a
l
c
(
T a
, U b
) { r
e
t
u
r
n (
a + b
)
; }
/
/ (
b
)
t
e
m
p
l
a
t
e
<
>
i
n
t c
a
l
c
<
>
(
i
n
t a
, i
n
t b
) { r
e
t
u
r
n (
a * b
)
; }
/
/ (
c
)
t
e
m
p
l
a
t
e
<
t
y
p
e
n
a
m
e T
>
i
n
t c
a
l
c
(
T a
, i
n
t b
) { r
e
t
u
r
n (
a - b
)
; }
/
/ (
d
)
i
n
t c
a
l
c
(
i
n
t a
, i
n
t b
) { r
e
t
u
r
n (
a <
< b
)
; }
c
a
l
c
(
4
.
0
, 2
.
0
)
; /
/ d
o
u
b
l
e
, d
o
u
b
l
e -
-
-
-
> (
a
) 6
c
a
l
c
(
4
.
0
, 2
)
; /
/ d
o
u
b
l
e
, i
n
t -
-
-
-
-
-
-
> (
c
) 2
c
a
l
c
(
4
, 2
)
; /
/ i
n
t
, i
n
t -
-
-
-
-
-
-
-
-
-
> (
d
) 1
6
c
a
l
c
(
4
U
, 2
)
; /
/ u
i
n
t
, i
n
t -
-
-
-
-
-
-
-
-
> (
c
) 2
c
a
l
c
(
4
U
, 2
U
)
; /
/ u
i
n
t
, u
i
n
t -
-
-
-
-
-
-
-
> (
a
) 6
c
a
l
c
<
i
n
t
,
i
n
t
>
(
4
, 2
)
; /
/ i
n
t
, i
n
t (
t
m
p
l
) -
-
-
> (
b
) 8
c
a
l
c
<
i
n
t
,
i
n
t
>
(
4
U
, 2
U
)
; /
/ u
i
n
t
, u
i
n
t (
t
m
p
l
) -
> (
b
) 8
c
a
l
c
<
>
(
4
, 2
)
; /
/ i
n
t
, i
n
t (
t
m
p
l
) -
-
-
> (
c
) 2
c
a
l
c
<
>
(
4
U
, 2
U
)
; /
/ u
i
n
t
, u
i
n
t (
t
m
p
l
) -
> (
a
) 6
c
a
l
c
<
i
n
t
>
(
4
, 2
)
; /
/ i
n
t
, i
n
t (
t
m
p
l
) -
-
-
> (
c
) 2
c
a
l
c
<
i
n
t
>
(
4
, 2
U
)
; /
/ i
n
t
, u
i
n
t (
t
m
p
l
) -
-
> (
a
) 6
C
++ compilers prefer the easiest path
Refer to Appendix A
& Appendix B of this document
4 / 52