Quick hack, adapt code to win32-pthread
Use parenthesis to avoid MSVC confusion (somehow it believes the declaration uses is_bidirectional_iterator otherwise)
Tuple simplifications to please MSVC