LINUX.ORG.RU

История изменений

Исправление ival, (текущая версия) :

template <typename T1, typename T2>
class multi {
    ...
}


template<typename T1, typename T2>
multi<T1, T2> mk_multi (T1 v1, T2 v2) {return multi<T1, T2> (v1, v2);}


template multi <>
class multi <void> {...}

typedef multi <T1, 
    multi <T2, 
	...
	    multi <T6,
		multi <void>
	    >
	...
    >
>
big_one;

template <typename t1, ..., typename t6>
big_one mk_big_one (t1 v1, ...t6 v6) {
      mk_multi (v1, mk_multi (v2, ... (mk_multi (v6, multi<void> ())) ... ))
}

Исправление ival, :

template <typename T1, typename T2>
class multi {
    ...
}


template<typename T1, typename T2>
mk_multi (T1 v1, T2 v2) {return multi<T1, T2> (v1, v2);}


template multi <>
class multi <void> {...}

typedef multi <T1, 
    multi <T2, 
	...
	    multi <T6,
		multi <void>
	    >
	...
    >
>
big_one;

template <typename t1, ..., typename t6>
big_one mk_big_one (t1 v1, ...t6 v6) {
      mk_multi (v1, mk_multi (v2, ... (mk_multi (v6, multi<void> ())) ... ))
}

Исходная версия ival, :

template <typename T1, typename T2>
class multi {
    ...
}


template<typename T1, typename T2>
mk_multi (T1 v1, T2 v2) {return multi<T1, T2> (v1, v2);}


template multi <>
class multi <void> {...}

typedef multi <T1, 
    multi <T2, 
	...
	    multi <T6,
		multi <void>
	    >
	>
    >
>
big_one;

template <typename t1, ..., typename t6>
big_one mk_big_one (t1 v1, ...t6 v6) {
      mk_multi (v1, mk_multi (v2, ... (mk_multi (v6, multi<void> ())) ... ))
}