Почему этот фрагмент кода C ++ компилируется (не-void функция не возвращает значение) [duplicate]

На этот вопрос уже есть ответ здесь:

Почему выпадение из конца непустой функции без возврата значения не приводит к ошибке компилятора? 8 ответов

Я нашел это в одной из моих библиотек сегодня утром:

static tvec4 Min(const tvec4& a, const tvec4& b, tvec4& out)
{
    tvec3::Min(a,b,out);
    out.w = min(a.w,b.w);
}

я ожидал ошибку компилятора, потому что этот метод неничего не вернуть, а тип возврата - нет.void

На ум приходят только две вещи:

Единственное место, где этот метод вызывается, возвращаемое значениет используется или хранится. (Этот метод должен былvoid -tvec4 тип возврата - ошибка копирования и вставки)

построенный по умолчаниюtvec4 создается, что, кажется, немного отличается от всего остального в C ++.

У меня нетЯ нашел ту часть спецификации C ++, которая решает эту проблему. Ссылки (га) приветствуются.

Обновить

Внемного обстоятельства, это приводит к ошибке в VS2012. У меня нетне сузить специфику, но этоТем не менее, это интересно.

Ответы на вопрос(7)

Ваш ответ на вопрос