https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60976

--- Comment #24 from Giuseppe Ottaviano <ott at fb dot com> ---
> No, only on trunk. It depends on the additions in r225242, so to use the new
> alloc_traits.h you would only need the new code in
> https://gcc.gnu.org/viewcvs/gcc/trunk/libstdc%2B%2B-v3/include/std/
> type_traits?r1=225242&r2=225241&pathrev=225242 (which could be added to the
> top of alloc_traits.h just in order to test, if that's easier).

Does __detected_or_t depend on some new language features? I copied all the
required metafunctions (including __void_t and __ptr_rebind), and I get this
error:

.../bits/alloc_traits.h: In substitution of 'template<class _Tp> using
__v_pointer = typename _Tp::void_pointer [with _Tp =
std::allocator<std::thread::_Impl<std::_Bind_simple<std::function<void()>()> >
>]':
.../bits/alloc_traits.h:57:29:   required from 'struct std::__detector<void*,
void, std::__allocator_traits_base::__v_pointer,
std::allocator<std::thread::_Impl<std::_Bind_simple<std::function<void()>()> >
> >'

[...]

.../bits/alloc_traits.h:103:53: error: no type named 'void_pointer' in 'class
std::allocator<std::thread::_Impl<std::_Bind_simple<std::function<void()>()> >
>'

Looks like it is ignoring the __detector negative case.

Reply via email to