Если я хочу продвигать char в int, я должен использовать static_cast & lt; int & gt; (переменная char) или + (переменная char) и почему?

Этот вопрос немного субъективен, но я считаю, что он может привести к некоторым конструктивным ответам. Предположим, у меня есть char x; и я хочу повысить его до интеграла, чтобы получить доступ к его числовому значению. Что мне лучше использовать и почему? static_cast<int> или унарный арифметический оператор +?

Мои собственные мысли о том, что с помощью static_cast<int> является более явным и читабельным. Однако, используя унарный арифметический оператор + короче код.

Один способ безопаснее другого?

1

Решение

ИМО, есть одно важное преимущество использования static_cast, даже если он немного более многословен: он позволяет вам быстро искать в своем коде приведения через grep или любая другая утилита для поиска текста. В больших проектах это может иметь значение, так как в противном случае приведение в стиле C часто ошибочно сопоставляется в объявлениях функций, таких как void f(double), где (double) конечно не актерский состав.

Более того, static_cast ясно дает понять ваше намерение С использованием + Оператор может показаться экзотическим (непонятным) тому, кто не на 100% знаком с правилами целочисленных акций. С точки зрения «безопасности», afaik, оба одинаково хороши.

Связанные с: В чем разница между static_cast<> а C стиль литья?

2

Другие решения


По вопросам рекламы [email protected]