Я обнаружил, что этот фрагмент кода компилируется и запускается с GCC7.3, но не с clang7:
const std::vector foo({1, 2, 3, 4}); foo.clear();
Я ожидаю ошибку компилятора, но GCC с удовольствием очищает вектор.
Это ошибка GCC 83818 ;это исправлено с помощью GCC 8.
К сожалению, там не так много информации - единственное "исправление", по-видимому, заключается в том, чтобы не использовать вывод аргументов шаблона класса или обновлять компилятор.