Without the change the build on upcoming gcc-16 fails as:
[ 12%] Building CXX object CMakeFiles/hyprutils.dir/src/signal/Listener.cpp.o
In file included from /build/source/./include/hyprutils/signal/Listener.hpp:5,
from /build/source/src/signal/Listener.cpp:1:
/build/source/./include/hyprutils/memory/SharedPtr.hpp: In member function 'bool Hyprutils::Memory::CSharedPointer<T>::operator()(const Hyprutils::Memory::CSharedPointer<T>&, const Hyprutils::Memory::CSharedPointer<T>&) const':
/build/source/./include/hyprutils/memory/SharedPtr.hpp:116:41: error: 'uintptr_t' does not name a type [-Wtemplate-body]
116 | return reinterpret_cast<uintptr_t>(lhs.impl_) < reinterpret_cast<uintptr_t>(rhs.impl_);
| ^~~~~~~~~
* memory: Add force reinterpret constructor to shared pointer
* memory: Change constructor to reinterpretPointerCast function
* memory: Add reinterpretPointerCast test
this unique pointer differs from the STL, because it allows weak pointers to it, which cannot be lock()ed.
under the hood, it's just a SP that cannot be referenced.
In file included from src/animation/AnimatedVariable.cpp:1:
In file included from ./include/hyprutils/animation/AnimatedVariable.hpp:3:
./include/hyprutils/animation/AnimationConfig.hpp:17:60: error: implicit instantiation of undefined template 'std::basic_string<char>'
17 | std::string internalBezier = "";
| ^
/usr/include/c++/v1/__fwd/string.h:43:28: note: template is declared here
43 | class _LIBCPP_TEMPLATE_VIS basic_string;
| ^
In file included from src/animation/AnimatedVariable.cpp:1:
In file included from ./include/hyprutils/animation/AnimatedVariable.hpp:3:
./include/hyprutils/animation/AnimationConfig.hpp:18:60: error: implicit instantiation of undefined template 'std::basic_string<char>'
18 | std::string internalStyle = "";
| ^
/usr/include/c++/v1/__fwd/string.h:43:28: note: template is declared here
43 | class _LIBCPP_TEMPLATE_VIS basic_string;
| ^