c++ - 重载三元? : operator, 或更改为包含文件中的 if{}else{}

标签 c++ include operator-overloading ternary-operator symbolic-computation

研究项目在这里。在我的 C++ 库中,我包含了 C 文件:

#include "aprogram.c"

我通过重载(几乎)所有运算符来象征性地执行它。

我必须能够检测到 (condition) 吗? this : that 并提取 conditionthisthat 以便在我的符号执行库中使用。然而,SO 1 , SO 2SO 3其他人已经帮助我意识到 ?: 不能被重载。

  • 有什么方法可以强行重载 ?: anyways?
  • 我可以将包含的 C 文件中的所有 ?: 语句更改为 ifelse 语句而不实际更改文件吗?

最佳答案

根据 C++ 标准,您不能重载 ?: 您能做的最好的事情就是使用 C 宏(但这会导致糟糕的代码)。

关于c++ - 重载三元? : operator, 或更改为包含文件中的 if{}else{},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19693455/

相关文章:

php - 保护一个类免受另一个类的不良编程?

c++ - 如何让g++运算符重载错误更简洁?

C++ 在模板中重载 operator=

javascript - 使用 Emscripten 将指向 std::vector 的指针传递给 Javascript,并使用它

c# - 将 C# 3D 数组作为 1D 字节数组传递给 C++ 库

c++ - AttachConsole错误5 : Access is denied

c++ - 修改boost多索引容器项

c++ - #ifndef 没有按预期工作

c++ - 将 QTImage 与 OpenGL 结合使用

c# - 运算符重载