Эта проблема кажется очень распространенной проблемой, но я не могу найти для нее решение. И я почти уверен, что такая функциональность должна быть частью повышения или другой популярной библиотеки.Ограничить длину строки в определенном диапазоне
Я хочу иметь замену для std :: string, для которой я мог бы указать минимальную и максимальную длину, желательно во время компиляции. Возможно, он также может поддерживать состояние без набора строк (в способе boost::optional
). Что-то вроде этого:
ranged_string<min, max> str;
При присвоении недопустимого значения следует выбросить исключение.
Создание такой утилиты не должно быть очень тяжелым (просто некоторые перегрузки и исключения), но я не хочу изобретать велосипед.
Диапазон проверки во время компиляции (с исключениями)? Не могу. * Замена * 'std :: string'? Конечно нет. Обертка была бы правильным способом сделать это. –
Вы должны сделать это сами, потому что ваша потребность не является общей и широко распространенной. Вы хотите проверить минимальную и максимальную длину, я хочу проверить, что все символы являются буквами ... это просто проверка ввода. –
@MarkGarcia: проверка должна выполняться во время выполнения, во время компиляции должны указываться только диапазоны. – user1234567