File tree Expand file tree Collapse file tree 1 file changed +6
-4
lines changed
Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -367,8 +367,9 @@ class OutputArchive : public detail::OutputArchiveBase {
367367 // ! Serializes any data marked for deferment using defer
368368 /* ! This will cause any data wrapped in DeferredData to be immediately serialized */
369369 void serializeDeferments () {
370- for (auto & deferment : itsDeferments)
371- deferment ();
370+ // To allow recursive deferments we iterate by indexes instead of iterators
371+ for (std::size_t i = 0 ; i < itsDeferments.size (); i++)
372+ itsDeferments[i]();
372373 }
373374
374375 // ! Registers a shared pointer with the archive
@@ -713,8 +714,9 @@ class InputArchive : public detail::InputArchiveBase {
713714 // ! Serializes any data marked for deferment using defer
714715 /* ! This will cause any data wrapped in DeferredData to be immediately serialized */
715716 void serializeDeferments () {
716- for (auto & deferment : itsDeferments)
717- deferment ();
717+ // To allow recursive deferments we iterate by indexes instead of iterators
718+ for (std::size_t i = 0 ; i < itsDeferments.size (); i++)
719+ itsDeferments[i]();
718720 }
719721
720722 // ! Retrieves a shared pointer given a unique key for it
You can’t perform that action at this time.
0 commit comments