Я пару лет писал программу на C ++ go и довольно часто ее использую. Эта программа использует библиотеку LTENSOR, которую я просто использую, и я не до конца осознаю, что там происходит. Через 2 дня go после обычной установки * Ubuntu 18.04 * я установил последнюю версию компилятора g cc (Ubuntu 7.5.0-3ubuntu1 ~ 18.04). Теперь, когда я запускаю ту же программу, что запускаю пару лет, я получаю следующую ошибку:
В файле, включенном в / home / alex / Documents / My Soilab / Soillab / ltensor /./ base /Array_base.h:29:0, из / home / alex / Documents / My Soilab / Soillab / ltensor / LTensor.h: 32, из / home / alex / Documents / My Soilab / Soillab / Soillab. cpp: 14 : / home / alex / Документы / My Soilab / Soillab / ltensor /./ base /../ storage / storage.h: В функции-член 'long int GenericStorage :: getBeginAddress (int, int)': / home / alex / Documents / My Soilab / Soillab / ltensor /./ base /../ storage / storage.h: 207: 62: ошибка: выражение не может быть использовано как функция gsize = (dim == 0? 0: stride (getPos (ordering , дим-1, ранг))); ^ [Закончено в 0.9 с кодом выхода 1] [shell_cmd: g ++ "/ home / alex / Documents / My Soilab / Soillab / Soillab. cpp" -o "/ home / alex / Documents / My Soilab / Soillab / Soillab "] [dir: / home / alex / Documents / My Soilab / Soillab] [путь: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games: / snap / bin]
Кажется, что это происходит из кода ниже
long getBeginAddress(int offset,int dim){
long gsize=0;
gsize= (dim==0?0: stride(getPos(ordering,dim-1,rank) )) ;
return gsize+offset;
}
Я не могу понять, почему я получаю эта ошибка. Благодаря.