2010-08-29 41 views
2

可能重複:
What's the use of metaprogramming?元編程被用於真實世界的C++軟件項目嗎?

我知道,在C++中,有提供元編程facitlities,如升壓MPL庫。 但是它們在真實世界的C++項目中真正有用嗎(或者僅在罕見情況下使用)? (我覺得元編程代碼很奇怪,並且可能會產生難以編譯的錯誤)

謝謝。

+0

Dup'ish:http://stackoverflow.com/questions/3468246/whats-the-use-of-metaprogramming – dirkgently 2010-08-29 15:45:24

+1

我不認爲這是一個騙局。這個問題問爲什麼使用元編程,而這個問題是要求使用TMP的特定情況。 – 2010-08-29 16:06:09

+0

是的,我想知道使用諸如Boost.MPL之類的實際項目的示例,但這些鏈接非常有用。 – user1492900 2010-08-31 04:55:35

回答

1

當然這很有用。你有沒有使用std::distancestd::advance?他們使用元編程爲雙向/隨機訪問迭代器做正確的事情。 (即,對於雙向迭代器重複++或 - 對於隨機訪問迭代器重複+ =或 - =)。

TMP對於需要爲類型參數做一件事或爲不同類型參數(即距離/高級)做另一件事的庫最爲有用。

是否存在瘋狂(例如Boost :: Spirit :: Qi)您可以使用元編程做些什麼?當然。這不是平均情況。

+0

謝謝你的回答 – user1492900 2010-08-31 04:56:01