0
我試圖用某個容器包裝mpl::set
中的每個元素,例如std::vector
,儘管實際類型並不重要。我將如何做到這一點?基本上,我想從這個boost mpl將每個元素包裝在一個集合中
using mySet = mpl::set<int, float, double>;
去這個
using myNewSet = mpl::set<container<int>, container<float>, container<double>>;
我認爲做類似mpl::insert
一類的,但是因爲我想該解決方案是通用它以某種方式存儲container
類型在其本身內部,其與mpl::fold
的參數類型不能很好地發揮作用。
你也應該可以使用[變換](http://www.boost.org/doc/libs/1_60_0/libs/ MPL/DOC/refmanual/transform.html)。 'mpl :: transform>' –
brunocodutra
這似乎不起作用,因爲標準容器不提供typedef類型定義。 – user975989
它應該繼續工作,注意'mpl :: transform'在內部調用'mpl :: lambda',然後調用'mpl :: quote',後者又隱式地定義了一個嵌套的':: type'來引用類型本身,不應定義嵌套的':: type'。 但是,由於一個不相關的問題,似乎無法轉換'mpl :: set's:它在內部顯示變換調用'mpl :: push_front',它沒有爲'mpl :: set'定義。事實上[適用於'mpl :: vector'。](http://melpon.org/wandbox/permlink/IeRGwrELRRItQLLU) – brunocodutra