c++ - template template parameters with boost::fast_pool_allocator -
why doesn't compile:
std::map<int, int, std::less<int>, boost::fast_pool_allocator< std::pair< int, int > > a_test;   but compiles fine:
typedef boost::fast_pool_allocator< std::pair< int, int > > fast_alloc; std::map<int, int, std::less<int>, fast_alloc > a_test;   a separate question: far can see in definition of boost::fast_pool_allocator takes 4 non-defaulted template parameters, in example above works fine. can please explain reason this? thanks!
your definition should read
std::map<   int,   int,   std::less<int>,   boost::fast_pool_allocator<     std::pair< int, int >   > > a_test;   you should format longer template instantiations parameters on separate lines. way cannot miss closing brackets.
boost::fast_pool_allocator forward-declared default template parameters in poolfwd.hpp.
just clarify naming conventions: allocator parameter not template template parameter here since specify setting type std::pair<int, int>.
Comments
Post a Comment