VS2010 doesn't like std::declval<> ...