此處的研究項目。在我的C++庫中,我包含C文件:重載三元?:運算符或更改爲包含文件中的{}其他{}
#include "aprogram.c"
其中我通過重載(幾乎)所有操作符來執行符號。
我必須能夠檢測(condition) ? this : that
並提取condition
,this
和that
以供我的符號執行庫使用。然而,SO 1,SO 2和SO 3等已經幫助我認識到,?:
不能超載。
- 有沒有辦法讓我強行重載
?:
呢? - 我可以將包含的C文件中的所有
?:
語句更改爲ifelse語句而不實際更改文件嗎?
您可以使用Clang構建現有程序的AST,將其轉換並寫出新的C++。 –
你也會遇到'||','&&'和','的問題,因爲過載不會有內置運算符的排序和短路保證。我相當確信,沒有解析和分析代碼就無法解決這些問題。 –
你應該檢查[這裏](http://en.wikipedia.org/wiki/C%2B%2B_operators)看看你可以和不能超載。三元運算符不能超載。 –