Я пытаюсь инициализирует Armadillo разреженный matriix sp_mat в MPI следующим образом:Использование Армадилла разреженных матриц в MPI
if(rank==0)
{ // some code for locations, values
sp_mat X(locations,values)
}
// this is where I want to use X
if(rank==0)
some_fun(X)
Как вы можете видеть, Armadillo конструктор является локальным для if block
и как таковой не может использовать его после того, как if block
. Положив тот же вопрос по-другому:
extern sp_mat X
if(rank==0)
{ // some code for locations, values
sp_mat X(locations,values)
}
// this is where I want to use X
if(rank==0)
some_fun(X)
extern sp_mat X
Использование Перед if block
также не помогает (я получил неопределенную ссылочную ошибку).
Как инициализировать X и повторно использовать его после?
ли это работать? из более раннего вопроса –
№ Это не сработало. – chandresh
** декларация ** из 'X' является локальной ветвью if, поэтому вы не можете использовать' X' вне этой ветви. Прочтите некоторые учебники/книги на C++ ... –