Почему «else» опущен после `return` в некоторых методах libstdc ++` std :: weding`, но не в других?C++

Программы на C++. Форум разработчиков
Anonymous
Почему «else» опущен после `return` в некоторых методах libstdc ++` std :: weding`, но не в других?

Сообщение Anonymous »

Я читаю реализацию libstdc ++ std :: weder из Master Branch. В ожидаемом заголовке , в строке 864, есть этот код:

Код: Выделить всё

template
constexpr _Er
error_or(_Gr&& __e) &&
{
static_assert( is_move_constructible_v );
static_assert( is_convertible_v );

if (_M_has_value)
return std::forward(__e);
// 

Подробнее здесь: [url]https://stackoverflow.com/questions/79697298/why-is-else-omitted-after-return-in-some-libstdc-stdexpected-methods[/url]

Вернуться в «C++»