У меня есть вектор байта, и я хочу проанализировать его для членов в моей структуре. Я делаю это, увеличивая итератор, пока не достигну конца. Я хотел избежать вызова 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)))};