value_or() requires that U is convertible to T
Due to Vladimir Batov.