In file included from [...]/pv/globalsettings.cpp:20:0:
[...]/pv/globalsettings.hpp:31:12: error: 'std::function' has not been declared
using std::function;
^
test/CMakeFiles/pulseview-test.dir/build.make:88: recipe for target 'test/CMakeFiles/pulseview-test.dir/__/pv/globalsettings.cpp.obj' failed
make[2]: *** [test/CMakeFiles/pulseview-test.dir/__/pv/globalsettings.cpp.obj] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 5%] Building CXX object CMakeFiles/pulseview.dir/pv/globalsettings.cpp.obj
In file included from [...]/pv/globalsettings.cpp:20:0:
[...]/pv/globalsettings.hpp:31:12: error: 'std::function' has not been declared
using std::function;
^
Add #include <functional> everywhere where std::function is used. Only
the occurence in globalsettings.hpp was causing an actual build failure
on MinGW, though.
Up to now, registered callbacks could not be unregistered
because std::function does not permit comparing for equality.
Using an interface class removes the need for std::function,
making the mechanism a little less elegant but at least fully
functional.
Use "using std::foo" to make the actual code itself a lot more readable.
There are some exceptions where we usually cannot do this, e.g. std::thread
often conflicts with "thread" from Qt or Boost.