LINUX.ORG.RU

История изменений

Исправление KennyMinigun, (текущая версия) :

auto &ref = result.cbegin();

Вот это называется «Reference Lifetime Extension». Вполне себе валидная практика. Только смотри, чтоб ссылка не пережила сам result и то, на что он ссылается (т.е. изначальная строка):

Because std::match_results holds std::sub_matches, each of which is a pair of iterators into the original character sequence that was matched, it’s undefined behavior to examine std::match_results if the original character sequence was destroyed or iterators to it were invalidated for other reasons.

Исправление KennyMinigun, :

auto &ref = result.cbegin();

Вот это называется «Reference Lifetime Extension». Вполне себе валидная практика. Только смотри, чтоб ссылка не пережила сам result и то, на что он ссылается.

Исходная версия KennyMinigun, :

auto &ref = result.cbegin();

Вот это называется «Reference Lifetime Extension». Вполне себе валидная практика. Только смотри, чтоб ссылка не пережила сам result и то, на что он ссылается.