我只能在程序中插入10行(严格)代码。我优化了程序,使其简洁。我已经在下面发布了代码。

    if (std::find(outvar.begin(), outvar.end(), line[x].tokens[0]) == outvar.end() ||             (std::find(inputs.begin(), inputs.end(), line[x].tokens[4]) == inputs.end())
 {
 cerr << "Undefined variable " << endl;
 exit(1);
 }


if (opr[x].type == "MUL" && opr[x1].asap_value == my_cycle + 1)
{
opr[x1].asap_value = my_cycle + 2;
update_slack();
update_matrix(opr[x1].opid, 0);
}


if (latency < (opr[p2].asap_value + opr[p2].latency_op - 1) || opr[p2].asap_value == 0)
{
cerr << "Latency value is too less for this circuit \n"; return -1;
}


仅此一项就需要10行,而我还必须添加2条强制性代码行。我无法进一步减少它。基本上,我希望将err(cout)语句与exit(返回)语句组合为一个语句。

任何帮助将不胜感激。

谢谢

最佳答案

您可以使用逗号将所有内容合并为一行:

opr[x1].asap_value = my_cycle + 2, update_slack(), update_matrix(opr[x1].opid, 0);


不知道这是否被认为是作弊行为。您尚未指定确切的规则。

关于c++ - 无法减少代码(将cout与退出组合),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27322893/

10-15 04:25