, , " " . , - , , , .
: , 3- , :
Promotion<Array<double>, Array<double> > foo;
(, , , , .)
foo, 1- 2 ?
- 1,
T = Array<double>. - 2
T1 = double, T2 = double.
, , " , " , . ? , X , Y, Y, Y , , , X. , , , , :
X , Y, , , X, Y.
, , ( , double) - " , " .
1 2? . , T T1 T2 , :
Promotion<Array<T1>, Array<T2> > = Promotion<T, T>
:
Array<T1> = T
Array<T2> = T
, - . , T, T1 , Array<T1> , T. ( , T Array<long>, T int char* .)
? 2 1? , T1 T2 T , :
Promotion<T, T> = Promotion<Array<T1>, Array<T2> >
:
T = Array<T1>
T = Array<T2>
, . T1 T , T , Array<T1> - T = Array<T1>. T2 , T1, (, T1 = bool, T2 = float), T, , Array<T1> Array<T2>. T.
, , . , , - , , - "".