это похоже на косяки в хидерах. вооще должен предупредить - в сборке gcc-9.0.0-trunk и "старый код" можен и зачастую это так, нескомпилируется - взят курс на жестокое соблюдение стандартам. то что можно было раньше как курица лапой, зоопарк с типами и тд - сейчас многое не проканывает. причина в том что при расширении функционала C++ в сторону с++11/c++14/c++... разработчикам стандарта приходится для исключения вновь возникших неоднозначностей и противоречий конкретизировать правила языка более жеско.
типа - добавили новую фичу - старые стали както криво выглядеть...
вот например на эту тему
http://scrutator.m …_lang_features_p3.aspx