Выражение присваивания итератора внутри инициализации вектора не работает - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть вектор байта, и я хочу проанализировать его для членов в моей структуре. Я делаю это, увеличивая итератор, пока не достигну конца. Я хотел избежать вызова std :: next дважды, как здесь:

using RawData = std::vector<std::byte>;
auto iter = message.begin();
auto rawSequenceNumber = RawData{iter, std::next(iter, sizeof(int))};
iter = std::next(iter, sizeof(int));

, и вместо этого хотел поместить присваивание в выражение. Но таким образом вектор rawSequenceNumber остается пустым. Почему этот код не работает:

using RawData = std::vector<std::byte>;
auto iter = message.begin();
auto rawSequenceNumber = RawData{iter, (iter = std::next(iter, sizeof(int)))};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...