#include <map>
#include <boost/container/small_vector.hpp>

using boost::container::small_vector;

typedef std::pair<int, small_vector<float, 8> > mypair;

typedef std::map<int, mypair> mymap;
typedef std::map<int, small_vector<mypair, 8> > mymap2;
typedef std::map<int, small_vector<small_vector<float, 8>, 8> > mymap3;

int main()
{
   mymap m;
   mypair& sv = m[0];

   mymap2 m2;
   small_vector<mypair, 8>& sv2 = m2[0];

   mymap3 m3;
   small_vector<small_vector<float, 8>, 8>& sv3 = m3[0];
}
