Добавлен Vlod
Ловлю неприятный баг с define.
Как его можно вылечить?
Как его можно вылечить?
код
define {
def1(Z) = {}
def2(Z) = {}
def3(Z) = {}
def4(Z) = {}
def5(a) = {}
def5(a) = {}
def6(a) = {}
def7(a) = {}
def8(a) = {}
def9(N) = {}
}
nothing g123() {
integer a = A(1,2,3,4,5,6,7,8,9)
}
define {
A(a,t1) = 1
A(a,t1,t2) = 2
A(a,t1,t2,t3) = 3
A(a,t1,t2,t3,t4) = 4
A(a,t1,t2,t3,t4,t5) = 5
A(a,t1,t2,t3,t4,t5,t6) = 6
A(a,t1,t2,t3,t4,t5,t6,t7) = 7
A(a,t1,t2,t3,t4,t5,t6,t7,t8) = 8
}
Ошибки нет:
карта
карта
код
define {
A(a,t1) = 1
A(a,t1,t2) = 2
A(a,t1,t2,t3) = 3
A(a,t1,t2,t3,t4) = 4
A(a,t1,t2,t3,t4,t5) = 5
A(a,t1,t2,t3,t4,t5,t6) = 6
A(a,t1,t2,t3,t4,t5,t6,t7) = 7
A(a,t1,t2,t3,t4,t5,t6,t7,t8) = 8
}
nothing g123() {
integer a = A(1,2,3,4,5,6,7,8,9)
}
Принятый ответ
Проверил отладчиком - все сложно. Подсказать вряд-ли что-то смогу.
Там судя по всему неправильно срабатывает сортировка перегруженных макросов, они должны в своей таблице располагаться по количеству аргументов, а располагаются они черти как. При этом если оставить одно или два определения типа def1 - все сохраняется.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован adic3x