Столкнулся с проблемой.
В общем, вкратце ситуация такова - при вызове метода с параметров типа container, такие параметры передаются только для чтения.
За примером далеко ходить не надо.
Вот класс c рекурсивным статическим методом. Если заменить параметры на int - посчитает до 10ти. Если с контейнером - зациклится, выдавая 1. Аксапта 3 SP3 CU1.
PHP код:
class Class1
{
}
static container m(container c)
{
;
conpoke(c,1,conpeek(c,1)+1); // conins(c,1,conpeek(c,1)+1); - эффект тот же
box::info(conpeek(c,1));
if (conpeek(c,1)>10)
return c;
else {
return Class1::m(c);
}
}
Вызывающий Job:
PHP код:
static void Job1(Args _args)
{
;
Class1::m([1]);
}
P.S. Кстати, нашел еще одну забавную багу компилятора с определением прототипа рекурсивной функции при изменении кол-ва её аргументов... но это мелочи.