template <class T>
void sozd(T* Mas_1x, int Razm) {
Mas_1x = new T [Razm];
}
template <class TElem, class TZnach>
void prisv(TElem* Mas, int Nom, TZnach Znach) {
Mas[Nom] = (TElem) Znach;
}
template <class T>
void prisv(T* Mas, int KolArg, T Arg1, T ...) {
Mas[0] = Arg1;
va_list Args;
va_start(Args, Arg1);
for (int i = 1; i < KolArg; i++) {
prisv<T, T>( Mas, i, va_arg(Args, T) ); // При 2-м проходе (иногда позже) ошибка. Почему?
}
va_end(Args);
}
int RazmMasOboznOper = 17;
string* MasOboznOper;
void inic_mas_obozn_oper() {
sozd(MasOboznOper, RazmMasOboznOper);
prisv<string>(MasOboznOper, RazmMasOboznOper, "=", "<", "<=", "==",
">=", ">", "!=", "+", "-", "*", "/", "^", "!",
"&", "|", "=>", "<=>");
}
void main() {
inic_mas_obozn_oper();
}
Добавлена разметка — Кодт
Программировать сложно. Но не программировать еще сложнее.