}
int PMPI_Keyval_create(MPI_Copy_function* copy_fn, MPI_Delete_function* delete_fn, int* keyval, void* extra_state) {
- smpi_copy_fn _copy_fn={};
- smpi_delete_fn _delete_fn={};
- _copy_fn.comm_copy_fn = copy_fn;
- _delete_fn.comm_delete_fn = delete_fn;
+ smpi_copy_fn _copy_fn={copy_fn,nullptr,nullptr};
+ smpi_delete_fn _delete_fn={delete_fn,nullptr,nullptr};
return Keyval::keyval_create<Comm>(_copy_fn, _delete_fn, keyval, extra_state);
}
int PMPI_Type_create_keyval(MPI_Type_copy_attr_function* copy_fn, MPI_Type_delete_attr_function* delete_fn, int* keyval,
void* extra_state)
{
- smpi_copy_fn _copy_fn={};
- smpi_delete_fn _delete_fn={};
- _copy_fn.type_copy_fn = copy_fn;
- _delete_fn.type_delete_fn = delete_fn;
+ smpi_copy_fn _copy_fn={nullptr,copy_fn,nullptr};
+ smpi_delete_fn _delete_fn={nullptr,delete_fn,nullptr};
return Keyval::keyval_create<Datatype>(_copy_fn, _delete_fn, keyval, extra_state);
}
int PMPI_Win_create_keyval(MPI_Win_copy_attr_function* copy_fn, MPI_Win_delete_attr_function* delete_fn, int* keyval,
void* extra_state)
{
- smpi_copy_fn _copy_fn={};
- smpi_delete_fn _delete_fn={};
- _copy_fn.win_copy_fn = copy_fn;
- _delete_fn.win_delete_fn = delete_fn;
+ smpi_copy_fn _copy_fn={nullptr, nullptr, copy_fn};
+ smpi_delete_fn _delete_fn={nullptr, nullptr, delete_fn};
return Keyval::keyval_create<Win>(_copy_fn, _delete_fn, keyval, extra_state);
}