Take constant reference rather than making a copy.

This should help out MSVC when it tries to use this
as a copy constructor (and consequently tries to make
a copy within that constructor, causing a stack overflow).