id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 8749,"Accessing type of insert, pair >::type discards inserted elements",guylaingreer@…,Aleksey Gurtovoy,"The following code sample illustrates the problem typedef insert, pair >::type little_map; BOOST_STATIC_ASSERT(size::value == 1); /* Success */ BOOST_STATIC_ASSERT(size::value == 1); /* Failure */ I have traced the problem to the file boost/mpl/map/aux_/item.hpp in the class definition of m_item. m_item derives from Base (which is a map<...> type) but does not define a ""typedef m_item type;"" to act as a unary metafunction returning itself. The result is that Base::type is found instead which means that m_item acts as a unary metafunction returning a map with all the inserted elements removed. The class m_item_ at the bottom of the file properly defines a ""typedef m_item_ type;"" which strengthens my belief that it missing from m_item is a bug. The solution, quite staightforwardly is to simply add the line ""typedef m_item type;"" to the class' definition. It should be noted that I am running version 1.48 of Boost, but have checked http://www.boost.org/doc/libs/1_52_0/boost/mpl/map/aux_/item.hpp and it still lacks the define so I'm convinced that this problem will still be there when I download the latest version of boost.",Bugs,new,To Be Determined,mpl,Boost 1.52.0,Problem,,,