Compiling with MSVC 2015 I get: c:\craftroot\labplot\liborigin\tree.hh(460): warning C4820: 'tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>': '7' bytes padding added after data member 'tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>::alloc_' 2> with 2> [ 2> T=Origin::ProjectNode 2> ] 2> c:\craftroot\labplot\liborigin\OriginParser.h(83): note: see reference to class template instantiation 'tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>' being compiled 2> with 2> [ 2> T=Origin::ProjectNode 2> ] 2>c:\craftroot\labplot\liborigin\OriginParser.h(87): warning C4820: 'OriginParser': '4' bytes padding added after data member 'OriginParser::buildVersion' 2>c:\craftroot\labplot\liborigin\OriginFile.h(80): warning C4625: 'OriginFile': copy constructor was implicitly defined as deleted 2>c:\craftroot\labplot\liborigin\OriginFile.h(80): warning C4626: 'OriginFile': assignment operator was implicitly defined as deleted 2>C:\CraftRoot\labplot\liborigin\OriginFile.cpp(57): warning C4365: 'initializing': conversion from 'long' to 'unsigned int', signed/unsigned mismatch 2>C:\CraftRoot\labplot\liborigin\OriginFile.cpp(60): warning C4365: '=': conversion from 'long' to 'unsigned int', signed/unsigned mismatch 2>C:\CraftRoot\labplot\liborigin\OriginFile.cpp(61): warning C4365: 'initializing': conversion from 'long' to 'unsigned int', signed/unsigned mismatch 2>C:\CraftRoot\labplot\liborigin\OriginFile.cpp(203): warning C4365: 'return': conversion from '__int64' to 'unsigned __int64', signed/unsigned mismatch 2>c:\craftroot\labplot\liborigin\tree.hh(159): warning C4820: 'tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>::iterator_base': '7' bytes padding added after data member 'tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>::iterator_base::skip_current_children_' 2> with 2> [ 2> T=Origin::ProjectNode 2> ] 2> c:\craftroot\labplot\liborigin\tree.hh(162): note: see reference to class template instantiation 'tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>::iterator_base' being compiled 2> with 2> [ 2> T=Origin::ProjectNode 2> ] 2> c:\craftroot\labplot\liborigin\tree.hh(591): note: see reference to class template instantiation 'tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>::pre_order_iterator' being compiled 2> with 2> [ 2> T=Origin::ProjectNode 2> ] 2> c:\craftroot\labplot\liborigin\tree.hh(588): note: while compiling class template member function 'void tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>::clear(void)' 2> with 2> [ 2> T=Origin::ProjectNode 2> ] 2> c:\craftroot\labplot\liborigin\tree.hh(528): note: see reference to function template instantiation 'void tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>::clear(void)' being compiled 2> with 2> [ 2> T=Origin::ProjectNode 2> ] 2> c:\craftroot\labplot\liborigin\tree.hh(527): note: while compiling class template member function 'tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>::~tree(void)' 2> with 2> [ 2> T=Origin::ProjectNode 2> ] 2> c:\craftroot\labplot\liborigin\OriginParser.h(56): note: see reference to function template instantiation 'tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>::~tree(void)' being compiled 2> with 2> [ 2> T=Origin::ProjectNode 2> ] 2> c:\craftroot\labplot\liborigin\OriginParser.h(83): note: see reference to class template instantiation 'tree<Origin::ProjectNode,std::allocator<tree_node_<T>>>' being compiled 2> with 2> [ 2> T=Origin::ProjectNode 2> ]
Closing. I will open more specific bug reports in future.