Double

Поддержка типа double в ATcl:

Tcl_Obj Obj(double);
Tcl_Obj Obj(const double &array[],int pos=0,int count=WHOLE_ARRAY)
 
Tcl_Obj Set(string var,double value);
Tcl_Obj Set(string hash,string key,double value);
 
int ToDouble(Tcl_Obj obj,double &value);
int ToArray(Tcl_Obj list,double &dst[],int pos=0,int count=WHOLE_ARRAY,double defaultValue=EMPTY_VALUE);
 
double Double(Tcl_Obj obj,double defaultValue=EMPTY_VALUE);
double Double(Tcl_Obj obj,int index,double defaultValue=EMPTY_VALUE);
 
double DoubleResult();
double DoubleEval(script,int flags);
double DoubleCall(Tcl_Obj command,....);
double DoubleCall(Tcl_Obj &objv[],int objc);

Для создания объекта double исползуется метод Obj() диспетчеризуемый от типа аргумента. Аналогично создаются объекты от одномерных массивов double.

Для получение значения double из объекта служат методы ToDouble и ToArray. При удачном завершении они возвращают стандартный код TCL_OK а непосредственное значение сохраняется по ссылке. При обращении к массивам учитывается их серийность.

Методы Set() задают значение double для переменных tcl

Double() - упрощенный способ получения значения из объекта. При ошибки конвертации будет возвращено defaultValue

DoubleResult() вернёт результат последнего исполнения в виде double.

DoubleEval,DoubleCall - упрощенные методы Eval,Call возвращающие непосредственное значение. В случае ошибки исполнения скрипта будет возвращён 0.0

см.также: Другие поддерживаемые типы String Long, Объекты Obj