(360) Use decltype for typeof replacement on MSVC 2010