Also, here is a screenshot from gdb of the disassembly of the RStream::Initialize function.
http://www.knightsgame.org.uk/disassembly.pngDave's executable is on the left and mine is on the right.
I'm not sure why, but there are some differences... for example, my version reserves more stack space (0x58 bytes as opposed to 0x30) and mine is doing something with the %fs register which I don't quite understand.
I think most of the code that we're seeing here has actually been inlined from bfs::canonical so it is possible that Dave is picking up a rogue boost header file from somewhere. Alternatively, it might be some difference in compiler version or compiler flags perhaps?
It's a bit of a mystery at the moment!
My compiler version is g++ 5.4.0.