Pass parameter by const ref instead of const value.
Remove unneeded explicit keyword.
Pass parameter by const ref instead of const value.
Return const references instead of const objects.
Use Doxygen comment.
Use private members instead of protected members.
Use const const_iterators instead of iterator.
Prefer default construction.
Remove a temporary used only once.

Instead use the return value of the function used to initialise the
temporary.
Use const references for arguments not modified.
Merge branch 'pull_1_fixes'