Почему бросок неиспользованные возвращаемые значения для освобождения?

Вам нужно обернуть свою кнопку в операторе if, чтобы проверить, установлено ли значение в true или false:


    Compulsory Briefing:



    
        Address [Google Maps]  
    

Это если ваше поле True / False имеет значение «compulsory_briefing», измените его следующим образом. не тот случай.

Для получения дополнительной информации о полях True / False в ACF Нажмите здесь .

105
задан Ciro Santilli 新疆改造中心法轮功六四事件 25 July 2016 в 08:50
поделиться

5 ответов

Ответ David в значительной степени касается мотивации для этого, чтобы явно показать другим "разработчикам" знание этой функции возвраты, но Вы явно игнорируете его.

Это - способ гарантировать это, где необходимые коды ошибок всегда обрабатываются.

Я думаю для C++, это - вероятно, единственное место, что я предпочитаю использовать броски C-стиля также, начиная с использования полной статической нотации броска просто чувствует себя подобно излишеству здесь. Наконец при рассмотрении стандарта кодирования или записи той затем это - также хорошая идея явно указать, что вызовы к перегруженным операторам (не использующий нотацию вызова функции) должны быть освобождены от этого также:

class A {};
A operator+(A const &, A const &);

int main () {
  A a;
  a + a;                 // Not a problem
  (void)operator+(a,a);  // Using function call notation - so add the cast.
73
ответ дан Community 24 November 2019 в 03:59
поделиться

Истинная причина того, чтобы сделать это относится ко времени инструмента, используемого на коде C, названном линтом.

Это анализирует код, ища возможные проблемы и выдавая предупреждения и предложения. Если функция возвратила значение, которое не было затем проверено, lint предупредил бы в случае, если это было случайно. К тишине lint на этом предупреждении Вы бросаете вызов к (void).

35
ответ дан Daniel Earwicker 24 November 2019 в 03:59
поделиться

На работе мы используем это, чтобы подтвердить, что функция имеет возвращаемое значение, но разработчик утверждал, что безопасно проигнорировать его. Так как Вы отметили вопрос как C++, необходимо использовать static_cast:

static_cast<void>(fn());

Насколько компилятор идет, бросая возвращаемое значение для освобождения, имеет мало значения.

44
ответ дан David Holm 24 November 2019 в 03:59
поделиться

Для функциональности Вас кастинг программы для освобождения бессмыслен. Я также утверждал бы, что Вы не должны использовать его для передачи сигналов о чем-то человеку, который читает код, как предложено в ответе David. Если Вы хотите передать что-то о своих намерениях, лучше использовать комментарий. Добавление броска как это будет только выглядеть странным и вызывать вопросы о возможной причине. Просто мое мнение...

4
ответ дан Dani van der Meer 24 November 2019 в 03:59
поделиться

Бросок для освобождения является бесплатным. Это - только информация для компилятора, как рассматривать его.

3
ответ дан klew 24 November 2019 в 03:59
поделиться