2016-07-29 156 views
-3

是否可以使用C++運算符重載並在C++中爲嵌入式DsL代碼創建類DSL的語法。在C++中嵌入式DSL語言的C++運算符重載

"a": auto = call("add2Numbers", "b", "c"); 

這就是我想要的。但任何接近這個有效C++的東西都是可以接受的。

+0

實際上應該做些什麼?我懷疑你可以做任何欺騙,使這個有效的C語法。 (我很清楚DSL是什麼) –

+0

用'#if 0'' #endif'包圍它在技術上使其成爲有效的C++,但您可能希望發生某些事情。什麼? – nwp

+0

只要我能夠存儲在這裏的所有信息在一些C++對象,我很好。不知怎的,我可以處理這個。 – user855

回答

2

好建議:不要。 C++是一個很大的多用途語言,已經夠複雜了。你混淆的人(和你自己呢!),如果你隨機改變的東西。尤其是操作員超載和建議的預處理器應該小心處理。

我的建議是編寫你需要的功能。你給了一個關於某種賦值的例子(對不起,不明白給定的代碼),我相信完全可以用一個方便的接口編寫一個函數來實現你想要做的事情。好處是你的合成器保持全部C++和可能的讀者(以及你未來的自己)不會感到困惑。

我希望我能正確理解你的問題。如果沒有,請糾正我。

Felix

+0

因爲我不知道你用'C++'編程有多好,應該注意的是你可以通過引用一個函數來傳遞你的變量。通過引用傳遞意味着,你仍然使用函數中的原始傳入變量,並將其更改爲適用於調用者函數的變量(例如'main()')也是如此。 我不知道這是否有幫助無論如何,我只是想說明這存在。 – Thynome