Standard library's detected_or does not contain value_t
dune-common contains an implementation of std::experimental::detected_or
which aligns with N4502 and cppreference.com.
But GCC (13.0) have a different opinion. Instead of value_t
they use some internal variable. The proper way is to use std::experimental::is_detected
. libcxx contains value_t
as expected.
This is not yet a bug report, but a note that in a not too distant future compiler will stumble over this code. This might be a compiler bug, a missed update of N4502, or we should teach our users to use is_detected
instead of value_t
.
Edited by Christoph Grüninger