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