Cleanup Cast_Helper and add new boxed_cast<>() function.

This commit is contained in:
Jason Turner
2009-06-23 02:47:47 +00:00
parent a5ecd3ceb0
commit d02620bb1b
9 changed files with 55 additions and 47 deletions

View File

@@ -179,7 +179,7 @@ namespace chaiscript
bool cond;
try {
retval = eval_token(ss, node->children[1]);
cond = dispatchkit::Cast_Helper<bool &>()(retval);
cond = dispatchkit::boxed_cast<bool &>(retval);
}
catch (std::exception) {
throw EvalError("Boolean not('!') condition not boolean", node->children[0]);
@@ -320,7 +320,7 @@ namespace chaiscript
retval = eval_token(ss, node->children[0]);
bool cond;
try {
cond = dispatchkit::Cast_Helper<bool &>()(retval);
cond = dispatchkit::boxed_cast<bool &>(retval);
}
catch (std::exception &e) {
throw EvalError("If condition not boolean", node->children[0]);
@@ -339,7 +339,7 @@ namespace chaiscript
else if (node->children[i]->text == "elseif") {
retval = eval_token(ss, node->children[i+1]);
try {
cond = dispatchkit::Cast_Helper<bool &>()(retval);
cond = dispatchkit::boxed_cast<bool &>(retval);
}
catch (std::exception &e) {
throw EvalError("Elseif condition not boolean", node->children[i+1]);
@@ -358,7 +358,7 @@ namespace chaiscript
retval = eval_token(ss, node->children[0]);
bool cond;
try {
cond = dispatchkit::Cast_Helper<bool &>()(retval);
cond = dispatchkit::boxed_cast<bool &>(retval);
}
catch (std::exception) {
throw EvalError("While condition not boolean", node->children[0]);
@@ -368,7 +368,7 @@ namespace chaiscript
eval_token(ss, node->children[1]);
retval = eval_token(ss, node->children[0]);
try {
cond = dispatchkit::Cast_Helper<bool &>()(retval);
cond = dispatchkit::boxed_cast<bool &>(retval);
}
catch (std::exception) {
throw EvalError("While condition not boolean", node->children[0]);
@@ -393,7 +393,7 @@ namespace chaiscript
else if (node->children.size() == 3){
condition = eval_token(ss, node->children[0]);
}
cond = dispatchkit::Cast_Helper<bool &>()(condition);
cond = dispatchkit::boxed_cast<bool &>(condition);
}
catch (std::exception &e) {
throw EvalError("For condition not boolean", node);
@@ -410,7 +410,7 @@ namespace chaiscript
eval_token(ss, node->children[1]);
condition = eval_token(ss, node->children[0]);
}
cond = dispatchkit::Cast_Helper<bool &>()(condition);
cond = dispatchkit::boxed_cast<bool &>(condition);
}
catch (std::exception &e) {