Compilation of step fails

If you use clang19 or gcc14, it fails. clang18 succeeds.

What are you talking about exactly ?

This app.

Can you share the error ?

What is the distro you are using ?

It spit out several error messages like this one

/var/tmp/portage/kde-apps/step-24.12.2/work/step-24.12.2/stepcore/object.h:252:45: error: a template argument list is expecte
d after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
  252 |     if(!src || !src->metaObject()->template inherits(_Dst())) return NULL;
      |                                             ^

And by applying such a patch, I was able to compile it with Clang 19.

diff -uprN a/stepcore/object.h b/stepcore/object.h
--- a/stepcore/object.h 2025-02-15 22:17:29.281326608 +0900
+++ b/stepcore/object.h 2025-02-15 22:20:02.407333617 +0900
@@ -249,7 +249,7 @@ public:
 /** Casts between pointers to Object */
 template<class _Dst, class _Src> // XXX: implement it better
 _Dst stepcore_cast(_Src src) {
-    if(!src || !src->metaObject()->template inherits(_Dst())) return NULL;
+    if(!src || !src->metaObject()->template inherits<_Dst>()) return NULL;
     return static_cast<_Dst>(src);
 }

I used a distro called Gentoo.

This is well known.

That’s ironic this function could be replaced with qobject_cast.