Я хочу передать IloNumArray
в качестве аргумента по ссылке в такой функции:
void myfuntion(...., IloNumArray & X, ...)
{
// ...
}
Я знаю, что это неверно. Есть ли другая альтернатива?
Он считал "неправильным" передавать объекты IloXXX по ссылке, поскольку они сами по сути являются ручками, указывающими на фактические данные, поэтому стоимость передачи объекта IloXXX такая же, как и стоимость, минуя ссылку. Также семантика копирования объектов IloXXX подобна передаче ссылки, поэтому
void myFunction(IloNumArray x) {
x[0] = 1.0;
}
IloEnv env;
// create an array with 1 element, value of 0
IloNumArray x(env, 1, 0.0);
myFunction(x);
cout << x[0] << endl;
// 1.0