Действительно ли возможно выключить поддержку “и” / “или” использование булева оператора в gcc?

В дополнение к тому, что уже было сказано, нужно сказать, что оптимистическая блокировка имеет тенденцию улучшать параллелизм за счет предсказуемости. Пессимистическая блокировка имеет тенденцию уменьшать параллелизм, но более предсказуема.

Вы платите свои деньги, и т.д.

5
задан Joe Corkery 1 July 2009 в 14:15
поделиться

4 ответа

Они являются частью стандарта C ++, см., Например, этот ответ StackOverflow (в котором цитируются соответствующие части стандарта).

Другой ответ на тот же вопрос упоминает, как сделать обратное: заставить их работать в MSVC.

Чтобы отключить их в GCC, используйте -fno-operator-names . Обратите внимание, что, поступая так, вы фактически переключаетесь на нестандартный диалект C ++, и есть риск того, что вы в конечном итоге напишете код, который может некорректно компилироваться на стандартных компиляторах (например, если вы объявляете переменная с именем, которое обычно зарезервировано).

17
ответ дан 18 December 2019 в 07:31
поделиться

-pedantic-errors могут помочь в этом, среди других гнуизмов.

-3
ответ дан 18 December 2019 в 07:31
поделиться

Имейте вы рассматривали какие-нибудь инструменты анализа кода? Что-то похожее на FxCop? С FxCop вы можете написать свои собственные правила (отметьте &&), и вы можете настроить его на выполнение на этапе предварительной компиляции.

0
ответ дан 18 December 2019 в 07:31
поделиться

Слова являются стандартными для C ++ без включения какого-либо заголовка.

Слова являются стандартными для C, если вы включаете заголовок .

MSVC не оказывает вам никакой услуги, не поддерживая стандарты.

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

7
ответ дан 18 December 2019 в 07:31
поделиться
Другие вопросы по тегам:

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