Согласно официальному документу здесь , RealForward
- это тип с перегруженным оператором присваивания, поэтому вы можете присвоить его с двойным ..
, как при выполнении
codi::RealForward a = 3.0;
противоположное направление, конечно, не определено,
. Это то, почему вы не можете напрямую конвертировать codi :: RealForward в двойной, просто выполнив:
double a = Gcodi[p];
но вы можете вызвать функции для этого, то есть
double a = Gcodi[p].getGradient();
UPDATE :
, затем вы можете назначить объект RealForwardс двойным, как при выполнении
double myDouble{3.3};
RealForward a = myDouble;
, но недопустимо присваивать двойное значение непосредственно из REalForwad:
RealForward a = ...;
double myDouble = a; //not valid!
другие примеры
RealForward b = a * a; //this is ok because a * a is a double