Unordered: Another attempt at member detection.
Another stab in the dark. Doing SFINAE in the return type appears to work well, apart for Visual C++ 8.0. Will have to see how the test results go for some compilers.