У меня есть переменная, адрес которой передан в качестве четвертого параметра в setsocketopt . Обратите внимание, что этот параметр объявлен как постоянный указатель (const void *optval
).
В патче, который я выставил на проверку, я изменил объявление этой переменной на stati c constexpr. У рецензента этого изменения были проблемы: он чувствовал, что было сомнительно, всегда ли вы можете взять адрес constexpr. Он предлагает мне сделать это const. Я не мог найти много об адресах переменных constexpr и проблемах с этим после поиска в Google. Может кто-нибудь объяснить, какие гарантии касаются адреса переменной constexpr и какие предостережения касаются его использования (если есть)?
В случае, если это полезно, вот код (я добавил static constexpr
, это было просто int
до):
static constexpr int ONE = 1;
setsockopt(socket_fd, IPPROTO_TCP, TCP_NODELAY, &ONE, sizeof(ONE));
Спасибо!