2011-05-24 89 views
1

是否可以在C++元程序中存儲狀態?我並不完全確定我的意思,但我想要一個可以「分配」給模板的模板類,例如可以通過使用C++模板來更改state::value在C++元編程中存儲狀態?

我知道我聽起來很含糊,但我希望有人能夠理解我在說什麼(也請不要Boost.MPL)。

+6

[What for?](http://www.catb.org/esr/faqs/smart-questions.html#goal) – GManNickG 2011-05-24 05:21:49

+0

Just interested; C++元編程看起來很有趣! – rfw 2011-05-24 05:37:49

+0

(時間旅行)重複的[有狀態元編程格式不正確(但)?](https://stackoverflow.com/questions/44267673/is-stateful-metaprogramming-ill-formed-yet)擾流板:從技術上說不,但它可能會最終,當它確實,這可能是追溯(即更多的時間旅行) – 2017-05-30 19:57:41

回答

2

這是不可能的,C++的TMP部分是一種沒有副作用概念的純函數式語言。

+2

「狀態」可以作爲附加參數傳遞給元函數,從而跨越調用進行更改。編寫元單元也是一種可能性 – 2011-05-25 05:28:17

1

這將是一個錯誤的天堂。它會違反模板單實例化規則,它會炸燬你的程序的大小(更別提混淆了你)。

+0

+1,我會說「混亂」是一種非常外交的方式來描述一個開發人員正在拼命尋找毒藥避免調試該代碼。 – sharptooth 2011-05-24 05:36:15