Код: Выделить всё
std::string/std::string_viewКод: Выделить всё
auto const parse_int = [](std::string_view sv, int base = 10) -> int {
int value;
auto result = std::from_chars(&*sv.begin(), &*sv.end(), value, base);
...
Я пытался оценить аналогичный код с &* в постоянном выражении, где неопределенное поведение должно быть обнаружено компилятором:
Код: Выделить всё
static_assert( [] {
const char s[3] = { 'e', 'n', 'd' };
[[maybe_unused]] auto * a = &*(s+3); // ok?
[[maybe_unused]] auto & b = *(s+3); // ok?
return true;
}() );
Подробнее здесь: https://stackoverflow.com/questions/798 ... string-end
Мобильная версия