Как я могу безопасно усреднить два беззнаковых целых числа в C ++?

Редактировать: я только что заметил, что вы пытаетесь использовать адрес Gmail в качестве значения от. Это не сработает , и интернет-провайдер правильно его перезаписывает. Если вы хотите перенаправить ответы на исходящие сообщения, используйте reply-to.

Обходной путь для действительных адресов, который работает со многими интернет-провайдерами:

попробуйте добавить пятый параметр в команду mail():

mail($to,$subject,$message,$headers,"-f your@email.here");
40
задан phuclv 2 December 2016 в 10:55
поделиться

1 ответ

В C++ 20, можно использовать std::midpoint :

template <class T>
constexpr T midpoint(T a, T b) noexcept;

бумага P0811R3, который представил std::midpoint, рекомендовал этот отрывок (немного принятый для работы с C++ 11):

#include <type_traits>

template <typename Integer>
constexpr Integer midpoint(Integer a, Integer b) noexcept {
  using U = std::make_unsigned<Integer>::type;
  return a>b ? a-(U(a)-b)/2 : a+(U(b)-a)/2;
}

Для полноты, вот является неизмененный C++ 20 реализациями из бумаги:

constexpr Integer midpoint(Integer a, Integer b) noexcept {
  using U = make_unsigned_t<Integer>;
  return a>b ? a-(U(a)-b)/2 : a+(U(b)-a)/2;
}
0
ответ дан 27 November 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: