I implemented std::experimental::is_detected based on this article on cppreference.com (Part of the code is below + working repro).
It works well on G++
You need a C++11 compiler to compile the above code, and MSVC 2015 is not a C++11 compiler.
The particular deficit in C++11 compliance you are running into is called "expression SFINAE" by microsoft. Keep an eye out for it being fixed.
Basically, decltype cannot be used for SFINAE. In laymans terms, SFINAE is the technique you are using for selecting overloads of template functions or classes.
There is usually no workaround.