30.09.2005, 13:10 | #1 |
Участник
|
Ограничено ли количество элементов в контейнере?
есть job
static void Job2(Args _args) { container c; c = [1, 2, 3, 4,...47] } компилирую. всё нормально. но если сделать так: static void Job2(Args _args) { container c; c = [1, 2, 3, 4,...47, 48] } то при компиляции возникает ошибка: "Переполнение во внутреннем стеке компилятора." кто-нить знает как с этим бороться и причины этого? |
|
30.09.2005, 13:49 | #2 |
Участник
|
Overview of containers
Keyword container Size of data type Dynamic Scope of data type User defined Default value 0 Implicit conversions none, but using the container-functions implicit conversion between all data types Explicit conversions none Это из руководства разработчика. Количество элементов в контейнере неограничено. |
|
30.09.2005, 13:53 | #3 |
Участник
|
но как показывает практика )) я конечно сделаю так чтоб нужный контейнер формировался динамически из нескольких более мелких. но всё же интересно откуда лезет эта ошибка...
|
|
30.09.2005, 13:57 | #4 |
Участник
|
PHP код:
Работает. |
|
30.09.2005, 13:59 | #5 |
Участник
|
Сколько угодно элементов можете вставить.
Пока оперативная память не закончиться |
|
30.09.2005, 14:00 | #6 |
Участник
|
Вам же написано - из компилятора. Не может он проглотить такую конструкцию. Почему - вопрос к его разработчикам
__________________
Axapta v.3.0 sp5 kr2 |
|
30.09.2005, 14:02 | #7 |
Участник
|
то что так как у Вас в примере работает я знаю. сам пробовал. но дело в том что есть такой класс RAssetSumCalc. там есть макрос в котором перечислены все переменные, которые необходимо запаковать на сервере и переправить на клиента в случае применения этого класса на тонком клиенте. так вот я добавил в этом классе пару переменных, которые есессно тоже надо передавать. число переменных в результате стало 52. класс перестал компилироваться. максимум который выдерживает компилятор - 47 переменных.
|
|
30.09.2005, 14:05 | #8 |
Участник
|
Хм..
Не пооленился сделал такой же джоб как у Вас PHP код:
|
|
30.09.2005, 14:06 | #9 |
Участник
|
Угу, не пишите длинных строчек в редакторе кода ... помещайте все на экране.
И все будет хорошо. С уважением, itfs. |
|
30.09.2005, 14:14 | #10 |
Участник
|
itfs
к сожалению не будет всё хорошо. хоть в столбик по одной переменной пишите. |
|
30.09.2005, 14:18 | #11 |
Участник
|
Ээ..., это значит, что помещение возврата каретки посреди оператора, не обманывают встроенный лексический анализатор, который для анализа выражения вцелом вынужден повыкидывать оные ... т.о. возвращаемся к изначальному ограничению ....
только не подумайте, что мне это нравится. С уважением, itfs. |
|
30.09.2005, 14:49 | #12 |
Участник
|
судя по всему переполняется стек синтаксического анализатора, а переводы строк выбрасываются лексическим анализатором.
Лучше попробовать разбить контейнеры плюсами: PHP код:
|
|
|
За это сообщение автора поблагодарили: Eldar9x (1). |
30.09.2005, 15:12 | #13 |
Участник
|
Получается, что анализатор имеет ограничение на длинну одной "лексеммы", т.е. анализируемой единовременно конструкции кода. Никто не пытался подсчитать (или прочитать) величину ограничения?
С уважением, itfs. |
|
30.09.2005, 15:57 | #14 |
Участник
|
скорее на глубину всего дерева разбора
|
|
|
|