fixup an ambiguity which caused infinite recursion on msvc