Skip to content

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