std::map<BoardPosition *, Square *, BoardPositionComparator> * boardMap;
boardMap = new std::map<BoardPosition *, Square *, BoardPositionComparator>();
BoardPosition * bp = new BoardPosition(0,0);
Square * s = new Square(new Rook("black", "rook"));
boardMap[bp] = s;
// error: invalid types ‘std::map<BoardPosition*, Square*, BoardPositionComparator, std::allocator<std::pair<BoardPosition* const, Square*> > >*[BoardPosition*]’ for array subscript