https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86135
--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> --- You didn't provide a proper testcase so nobody can possibly explain why your code crashes. If it's similar to the code in comment 3 then model_t<std::vector<object_t>> tries to construct a vector<object_t> from a vector<object_t> using list-init which chooses the initializer_list constructor because object_t can be constructed from vector<object_t>. It's the same bug 85577.