This is because these functions return links, and you declare a pointer to the return value, that is, a pointer to a link, and this is not possible.
Quick fix:
template <typename U> static true_type
f(typename remove_reference< decltype(declval<U>().member()) >::type *);
PS. () , , SFINAE , , .
, false_type , true_type . :
test.cpp:9:50: error: forming pointer to reference type
‘__gnu_cxx::__alloc_traits<std::allocator<int> >::value_type& {aka int&}’