When the builtins aren't used we need a declaration of std::is_function
for the fallback definitions of std::is_member_function_pointer and
std::is_member_object_pointer.
libstdc++-v3/ChangeLog:
* include/std/type_traits (is_function): Declare before first
use.
: public __bool_constant<__is_member_object_pointer(_Tp)>
{ };
#else
+ template<typename _Tp>
+ struct is_function;
+
template<typename>
struct __is_member_object_pointer_helper
: public false_type { };
: public __bool_constant<__is_member_function_pointer(_Tp)>
{ };
#else
+ template<typename _Tp>
+ struct is_function;
+
template<typename>
struct __is_member_function_pointer_helper
: public false_type { };