Недопустимое Значение для size_t

Я сделал некоторый бит, переключающий C# на нижний регистр. Приложение должно было нормализовать речевой аудиовход который requiered несколько математических операций на уровне аудиосэмпла.

8
задан ST3 23 September 2013 в 14:27
поделиться

4 ответа

Возможно ((size_t) -1) ?

Строго говоря, это допустимый размер, но как только он у вас есть, вы другие вряд ли понадобятся; -)

10
ответ дан 5 December 2019 в 08:53
поделиться

Если вы говорите о std :: string, то недопустимым значением size_t будет std :: string :: npos. Обычно вы не должны использовать -1, потому что size_t не имеет знака, и вы можете получить неудачные сравнения на компиляторе, выполняющем неявные преобразования между типами.

При этом npos std :: strings установлен в 0XFFFFFFFFFFFFFFFF ... что является двоичный эквивалент -1. Он также оценивает максимально допустимое значение для беззнакового поля size_t.

4
ответ дан 5 December 2019 в 08:53
поделиться

И что вы делаете, чтобы обозначить, что int недействителен? -1 - допустимое значение для int. Эти типы не имеют обозначенных «недопустимых» значений. Вы можете выбрать определенное значение (которое обычно никогда не может быть значением того, что представляет ваша переменная) для представления недопустимого значения, но это ваше собственное определение, а не то, что люди обычно используют.

Лично я не знаю Мне так не нравится. Я предпочитаю создать другую переменную, bool IsValid , которая скажет, действительно ли значение этой переменной size_t. Иногда может быть даже лучше создать класс для их инкапсуляции.

1
ответ дан 5 December 2019 в 08:53
поделиться

В принципе, нельзя. Какое бы значение вы ни использовали, оно может быть допустимым. Лучше передать флаг о том, что он недействителен.

3
ответ дан 5 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

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