Mesh::setElementsConnectedToElements optimize memory.
Mesh::setElementsConnectedToElements make neighbours unique.
Make Element::identifyFace() public for all element types.
Make Element::addNeighbor() return face_id of opposite neighbor.
Add Element::setNeighbor().

This is used when the face_id of the neigbor is known.
Use Element::setNeighbor() in setElementsConnectedToElements().
Rewrite element loop using iterator.
Early exit if element is an edge. Reduces indentation.
Use iterator in neighbors for loop.
Use boost::optional in Element::addNeighbor return value.
In Element::addNeighbor() remove extra nullptr test.

Check only if there is a neighbor.
Rewrite setElementsConnectedToNodes() for loop using iterators.
Move Element::setNeighbor() into private section.
Fixes infinite loop possible.

http://www.viva64.com/en/d/0289/print/
Added WinMM.lib because timeGetTime depends on it.
Fixed 'An array/object was declared but was not utilized'.

http://www.viva64.com/en/d/0274/print/
Replace iterator++ with ++iterator.

http://www.viva64.com/en/d/0165/print/
Ineffective use of the 'count' function.

http://www.viva64.com/en/d/0294/print/
Const ref.

http://www.viva64.com/en/d/0303/print/
Fixed 'An array/object was declared but not utilized'.