本文整理汇总了C++中Var::getDoubleValue方法的典型用法代码示例。如果您正苦于以下问题:C++ Var::getDoubleValue方法的具体用法?C++ Var::getDoubleValue怎么用?C++ Var::getDoubleValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Var
的用法示例。
在下文中一共展示了Var::getDoubleValue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
double getTypedValue<double>(const Var& var) {
assert(var.type() == VT_DOUBLE);
return var.getDoubleValue();
}
示例2: funExec
void Interpreter::funExec(BytecodeFunction* f) {
size_t bci = 0;
size_t k = 0;
while (bci < f->bytecode()->length()) {
++k;
Instruction insn = f->bytecode()->getInsn(bci);
switch (insn) {
case BC_INVALID: {
std::cerr << "Invalid instruction!\n";
return;
break;
}
case BC_DLOAD: {
Var var(VT_DOUBLE, "");
var.setDoubleValue(f->bytecode()->getDouble(bci + 1));
programStack.push(var);
break;
}
case BC_ILOAD: {
Var var(VT_INT, "");
var.setIntValue(f->bytecode()->getInt64(bci + 1));
programStack.push(var);
break;
}
case BC_SLOAD: {
Var var(VT_STRING, "");
var.setStringValue(constantById(f->bytecode()->getUInt16(bci + 1)).c_str());
programStack.push(var);
break;
}
case BC_DLOAD0: {
Var var(VT_DOUBLE, "");
var.setDoubleValue(0.0);
programStack.push(var);
break;
}
case BC_ILOAD0: {
Var var(VT_INT, "");
var.setIntValue(0L);
programStack.push(var);
break;
}
case BC_SLOAD0: {
Var var(VT_STRING, "");
var.setStringValue("");
programStack.push(var);
break;
}
case BC_DLOAD1: {
Var var(VT_DOUBLE, "");
var.setDoubleValue(1.0);
programStack.push(var);
break;
}
case BC_ILOAD1: {
Var var(VT_INT, "");
var.setIntValue(1L);
programStack.push(var);
break;
}
case BC_DLOADM1: {
Var var(VT_DOUBLE, "");
var.setDoubleValue(-1.0);
programStack.push(var);
break;
}
case BC_ILOADM1: {
Var var(VT_INT, "");
var.setIntValue(-1L);
programStack.push(var);
break;
}
case BC_DADD: {
Var leftOperand = programStack.top();
programStack.pop();
Var rightOperand = programStack.top();
programStack.pop();
Var result(VT_DOUBLE, "");
result.setDoubleValue(leftOperand.getDoubleValue() + rightOperand.getDoubleValue());
programStack.push(result);
break;
}
case BC_IADD: {
Var leftOperand = programStack.top();
programStack.pop();
Var rightOperand = programStack.top();
programStack.pop();
Var result(VT_INT, "");
result.setIntValue(leftOperand.getIntValue() + rightOperand.getIntValue());
programStack.push(result);
break;
}
case BC_DSUB: {
Var leftOperand = programStack.top();
programStack.pop();
Var rightOperand = programStack.top();
programStack.pop();
Var result(VT_DOUBLE, "");
result.setDoubleValue(leftOperand.getDoubleValue() - rightOperand.getDoubleValue());
programStack.push(result);
//.........这里部分代码省略.........