IN and OUT are already defined on Windows, use a different template parameter name; also missing include for set
Merge pull request #377 from chambbj/template-parameter-names

Template parameter names and missing include