1
我正在嘗試使用boost-mpl的地圖容器來執行基於策略的設計的POC。 (code here)在模板超負荷缺失時提升MPL?
我繞過使用MPL ::地圖,默認情況下是空的我的政策:
typedef boost::mpl::map<> DefaultPolicy;
獲得策略我試過如下:
typedef typename boost::mpl::at<TPolicy, LogPK, DefaultLogP>::type LoggingPolicy;
相反,我m使用g ++ 4.81(以及與clang ++ 3.3相當的一個)得到以下錯誤:
main.cpp:49:61: error: wrong number of template arguments (3, should be 2) typedef typename boost::mpl::at<TPolicy, LogPK, DefaultLogP>::type LoggingPolicy; ^
boost文檔mentions at模板的三參數重載。它看起來不在#include <boost/mpl/at.hpp>
。我甚至通過boost代碼搜索了這個超載,但沒有成功。我發現的唯一模板是有兩個參數的模板。我在搜索這個問題上失敗(「at」太常見了)。
這是一個助推文檔錯誤,或有人發現如何使用此mpl ::在超載?
* facepalm *。我終於找到了這個(至少)三年前的文檔錯誤[trac issue](https://svn.boost.org/trac/boost/ticket/3982)。 – madidier