I think MSVC doesn't understand the restrict keyword