Привет, ЛОР.
Пытаюсь собрать Qt 5.15.4 с GCC 15.1.1. Часть граблей знакомые, обошёл. Но выявились новые. Причём ругань не на сам кутешный файл, а на заголовочник из ICU, который у меня в системе стоит. Вызывает его подпроект в qtlocation/src/3rdparty/mapbox-gl-native
.
Текст ошибки (даже двух, но вторая, вероятно, наведённая):
/usr/include/unicode/localpointer.h:561:26: ошибка: «auto» параметр недопустим в данном контексте
561 | template <typename Type, auto closeFunction>
| ^~~~
/usr/include/unicode/localpointer.h:573:76: ошибка: некорректный аргумент шаблона 2 [-Wtemplate-body]
573 | explicit LocalOpenPointer(std::unique_ptr<Type, decltype(closeFunction)> &&p)
Кусок самого localpointer.h:
template <typename Type, auto closeFunction>
class LocalOpenPointer : public LocalPointerBase<Type> {
using LocalPointerBase<Type>::ptr;
public:
Подозреваю, конечно, что компилятор шарашит по либо слишком старому, либо слишком новому стандарту C++. В файле mapbox-gl-native.pro на себя обращают внимание строки
CONFIG += qt c++14 exceptions warn_off staticlib object_parallel_to_source
CONFIG -= c++1z
А рядом лежит свеженький Makefile, который qmake из этого проекта сгенерировала, и там в переменной CXXFLAGS присутствует -std=c++1y
.
Как связать концы этого клубка?