summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorancarola <raffaele.ancarola@epfl.ch>2019-01-23 23:46:30 +0100
committerancarola <raffaele.ancarola@epfl.ch>2019-01-23 23:46:30 +0100
commite41dcda98ca49f1c21f89c5a8ad8ce4a95c40641 (patch)
tree5b95562eb53ceed8f2e4ebc101cfda2361f116ea
parentMerge remote-tracking branch 'nao/master' (diff)
downloadflatland-e41dcda98ca49f1c21f89c5a8ad8ce4a95c40641.tar.gz
flatland-e41dcda98ca49f1c21f89c5a8ad8ce4a95c40641.zip
Fixes on signals
-rwxr-xr-xbin/libflatland.sobin0 -> 364992 bytes
-rw-r--r--build.ninja_test66
-rw-r--r--engine/flatcomponent.cpp19
-rw-r--r--engine/flatsurface.cpp36
-rw-r--r--engine/include/core/signal.hpp108
-rw-r--r--engine/include/flatcomponent.h16
-rw-r--r--engine/include/flatsurface.h17
-rw-r--r--engine/labelled.cpp2
-rw-r--r--engine/signal.cpp72
m---------lib/libmm0
-rw-r--r--log.dat1249
11 files changed, 1469 insertions, 116 deletions
diff --git a/bin/libflatland.so b/bin/libflatland.so
new file mode 100755
index 0000000..670d794
--- /dev/null
+++ b/bin/libflatland.so
Binary files differ
diff --git a/build.ninja_test b/build.ninja_test
new file mode 100644
index 0000000..4fd6e6c
--- /dev/null
+++ b/build.ninja_test
@@ -0,0 +1,66 @@
+include ninja/rules.ninja
+
+#
+#build lib/libmm/build/libmm.so: ninja lib/libmm
+#build lib/libmm/build/libmm.a: ninja lib/libmm
+#
+#
+#build lib/libwsdl2/build/libwsdl2.so: ninja lib/libmm
+#build lib/libwsdl2/build/libwsdl2.a: ninja lib/libmm
+#
+#
+#build build/engine: mkdir
+#build build/test: mkdir
+#
+
+#build build/engine/flatlayer.o: cpp engine/flatlayer.cpp
+build build/engine/object.o: cpp engine/object.cpp
+build build/engine/task.o: cpp engine/task.cpp
+#build build/engine/focusable.o: cpp engine/focusable.cpp
+#build build/engine/flatsurface.o: cpp engine/flatsurface.cpp
+#build build/engine/flatcomponent.o: cpp engine/flatcomponent.cpp
+#build build/engine/flatserial.o: cpp engine/flatserial.cpp
+#build build/engine/flatactor.o: cpp engine/flatactor.cpp
+#build build/engine/keyfocusable.o: cpp engine/keyfocusable.cpp
+#build build/engine/flatland.o: cpp engine/flatland.cpp
+#build build/engine/flatexception.o: cpp engine/flatexception.cpp
+#build build/engine/signal.o: cpp engine/signal.cpp
+#build build/engine/flatwindow.o: cpp engine/flatwindow.cpp
+#build build/engine/flatcollector.o: cpp engine/flatcollector.cpp
+#build build/libflatland.so: link-shared build/engine/flatlayer.o build/engine/object.o build/engine/task.o build/engine/focusable.o build/engine/flatsurface.o build/engine/flatcomponent.o build/engine/flatserial.o build/engine/flatactor.o build/engine/keyfocusable.o build/engine/flatland.o build/engine/flatexception.o build/engine/signal.o build/engine/flatwindow.o build/engine/flatcollector.o
+#build build/libflatland.a: link-static build/engine/flatlayer.o build/engine/object.o build/engine/task.o build/engine/focusable.o build/engine/flatsurface.o build/engine/flatcomponent.o build/engine/flatserial.o build/engine/flatactor.o build/engine/keyfocusable.o build/engine/flatland.o build/engine/flatexception.o build/engine/signal.o build/engine/flatwindow.o build/engine/flatcollector.o
+
+build build/test/task_test.o: cpp test/task_test.cpp
+build build/test/task_test: link build/test/task_test.o build/engine/task.o
+
+#
+#
+#build build/test/main.o: cpp test/main.cpp
+#build build/test/main: link build/test/main.o
+# lflags = $lflags ../build/libflatland.so
+#
+#
+#build build/test/test1.o: cpp test/test1.cpp
+#build build/test/test1: link build/test/test1.o
+# lflags = $lflags ../build/libflatland.so
+#
+#
+#build build/test/test2.o: cpp test/test2.cpp
+#build build/test/test2: link build/test/test2.o
+# lflags = $lflags ../build/libflatland.so
+#
+#
+#build build/test/task_test.o: cpp test/task_test.cpp
+#build build/test/task_test: link build/test/task_test.o
+## lflags = $lflags ../build/libflatland.so
+#
+#
+#build build/test/test3.o: cpp test/test3.cpp
+#build build/test/test3: link build/test/test3.o
+# lflags = $lflags ../build/libflatland.so
+#
+#
+#
+#
+#
+#
diff --git a/engine/flatcomponent.cpp b/engine/flatcomponent.cpp
index 06b558c..925feaa 100644
--- a/engine/flatcomponent.cpp
+++ b/engine/flatcomponent.cpp
@@ -1,36 +1,35 @@
#include "flatcomponent.h"
#include "signal.h"
-Component::Component(Component *parent, const std::string& id)
- : parent(parent)
+using namespace flat;
+
+component::component(component *parent, const std::string& id)
+ : m_parent(parent)
{
// TODO, check flatland initialization
- if (id.empty())
- setID(flat::core::object::randomID());
-
if (parent == 0)
{
// TODO set screen as parent layer
}
}
-Component::~Component()
+component::~component()
{
}
-void Component::setParent(Component *parent)
+void component::set_parent(component *parent)
{
if (parent == 0)
// TODO set screen as parent layer
;
- this->parent = parent;
+ this->m_parent = m_parent;
}
-Component * Component::getParent()
+component * component::parent()
{
- return parent;
+ return m_parent;
}
diff --git a/engine/flatsurface.cpp b/engine/flatsurface.cpp
index b3291d6..baf63e8 100644
--- a/engine/flatsurface.cpp
+++ b/engine/flatsurface.cpp
@@ -6,14 +6,12 @@ using namespace std;
FlatSurface::FlatSurface(const char *filename, uint32_t format, SDL_Surface *parent)
- : flat::core::object(), parent(parent), hide(false)
+ : flat::core::labelled(filename, true), parent(parent), hide(false)
{
- setID(filename);
-
cout << "FlatSurface: loading " << filename << endl;
- surface = loadOptimizedSurface(filename, format);
+ sdl_surface = loadOptimizedSurface(filename, format);
- if (!surface)
+ if (!sdl_surface)
{
cout << "Warning: could not load surface " << filename << endl;
}
@@ -22,36 +20,36 @@ FlatSurface::FlatSurface(const char *filename, uint32_t format, SDL_Surface *par
offset->x = 0;
offset->y = 0;
- offset->w = surface->w;
- offset->h = surface->h;
+ offset->w = sdl_surface->w;
+ offset->h = sdl_surface->h;
viewport = new SDL_Rect;
viewport->x = 0;
viewport->y = 0;
- viewport->w = surface->w;
- viewport->h = surface->h;
+ viewport->w = sdl_surface->w;
+ viewport->h = sdl_surface->h;
}
-FlatSurface::FlatSurface(SDL_Surface *surface, SDL_Surface *parent)
+FlatSurface::FlatSurface(SDL_Surface *sdl_surface, SDL_Surface *parent)
: flat::core::object(), parent(parent), hide(false)
{
- this->surface = new SDL_Surface(*surface);
+ this->sdl_surface = new SDL_Surface(*sdl_surface);
offset = new SDL_Rect;
offset->x = 0;
offset->y = 0;
- offset->w = surface->w;
- offset->h = surface->h;
+ offset->w = sdl_surface->w;
+ offset->h = sdl_surface->h;
viewport = new SDL_Rect;
viewport->x = 0;
viewport->y = 0;
- viewport->w = surface->w;
- viewport->h = surface->h;
+ viewport->w = sdl_surface->w;
+ viewport->h = sdl_surface->h;
}
FlatSurface::FlatSurface(const FlatSurface &sprite)
@@ -63,12 +61,12 @@ FlatSurface::FlatSurface(const FlatSurface &sprite)
viewport = new SDL_Rect(*sprite.viewport);
- surface = copySurface(sprite.surface);
+ sdl_surface = copySurface(sprite.surface);
}
FlatSurface::~FlatSurface()
{
- SDL_FreeSurface(surface);
+ SDL_FreeSurface(sdl_surface);
delete offset;
delete viewport;
@@ -127,7 +125,7 @@ SDL_Surface * FlatSurface::getParent()
SDL_Surface * FlatSurface::getSurface()
{
- return surface;
+ return sdl_surface;
}
void FlatSurface::setHidden(bool flag)
@@ -143,7 +141,7 @@ bool FlatSurface::isHidden() const
void FlatSurface::blit()
{
if (!hide)
- SDL_BlitSurface(surface, viewport, parent, offset);
+ SDL_BlitSurface(sdl_surface, viewport, parent, offset);
}
SDL_Surface * FlatSurface::loadOptimizedSurface(const char *filename, uint32_t format)
diff --git a/engine/include/core/signal.hpp b/engine/include/core/signal.hpp
index be1644a..8a3d639 100644
--- a/engine/include/core/signal.hpp
+++ b/engine/include/core/signal.hpp
@@ -21,10 +21,22 @@ namespace flat
{
public:
+
+ struct package
+ {
+ package(void *data) : data(data) {}
+
+ template<class T>
+ T * get() {
+
+ return dynamic_cast<T>(data);
+ }
+
+ void * data;
+ };
object * sender;
package m_package;
- priority_t prior;
signal( object * sender,
const std::string& id = "",
@@ -33,24 +45,47 @@ namespace flat
/* Alias to flat::core::channel::emit() */
bool emit(const std::string& channel) const;
+ };
+
+ /* Listener class */
+ class listener
+ {
+ public:
- struct package
+ using callback = std::function<void(const object*, signal::package)>;
+ using ptr = std::shared_ptr<listener>;
+
+ listener(callback m_callback, const std::initializer_list<std::string>& filters = {});
+ ~listener();
+
+ void add_filter(const std::string&);
+ void remove_filter(const std::string&);
+
+ bool connect(const std::string&);
+ bool disconnect(const std::string&);
+
+ void invoke(const signal&);
+
+ /* Allow to safely bind a functor */
+ template<typename R, typename T>
+ static ptr create( R T::*mf,
+ T& obj,
+ const std::initializer_list<std::string>& filters = {})
{
- package(void *data) : data(data) {}
+ return std::make_shared<listener>(std::bind(mf, obj), filters);
+ }
- template<class T>
- T * get() {
+ private:
- return dynamic_cast<T>(data);
- }
+ callback m_callback;
- void * data;
- };
+ std::list<std::string> filters;
+
+ bool check_in_filters(const std::string&) const;
};
-
/* Channel class */
- class channel : virtual public labelled
+ class channel : virtual public labelled, public std::enable_shared_from_this<channel>
{
/* Post processing signal stacking */
queue<signal> stack;
@@ -63,65 +98,34 @@ namespace flat
/* Channel mapping */
static std::map<std::string, std::weak_ptr<channel>> channels;
+
+ bool mapped;
public:
+
+ using ptr = std::shared_ptr<channel>;
- channel(const std::string& id = "", priority_t task_priority = priority_t::none);
+ channel(const std::string& id = "");
~channel();
- void start();
+ void start(priority_t task_priority = priority_t::none);
bool map();
void emit(const signal&);
bool connect(listener::ptr l);
void disconnect(listener::ptr l);
+
+ bool connect(listener* l);
+ void disconnect(listener* l);
static ptr find(const std::string&);
- static ptr create(const string& id, priority_t prior);
+ static ptr create(const std::string& id, priority_t prior);
void check_and_call();
-
- typedef shared_ptr<channel> ptr;
};
-
- /* Listener class */
- class listener
- {
- std::list<std::string> filters;
-
- bool check_in_filters(const std::string&) const;
-
- callback_t m_callback;
-
- public:
-
- listener( callback_t m_callback,
- const std::initializer_list<std::string>& filters = {});
-
- ~listener();
- void add_filter(const std::string&);
- void remove_filter(const std::string&);
-
- bool connect(const std::string&);
- bool disconnect(const std::string&);
-
- void invoke(const signal&);
-
- /* Allow to safely bind a functor */
- template<class T>
- static ptr create( const (T::*method(const object*, void*))& fct,
- T* obj,
- const std::initializer_list<std::string>& filters = {})
- {
- return new listener(std::bind(fct, ptr), filters);
- }
-
- typedef std::function<void(const object*, signal::package)> callback_t;
- typedef shared_ptr<listener> ptr;
- };
}
}
diff --git a/engine/include/flatcomponent.h b/engine/include/flatcomponent.h
index 881e34f..4ad99c8 100644
--- a/engine/include/flatcomponent.h
+++ b/engine/include/flatcomponent.h
@@ -5,24 +5,28 @@
#include "core/labelled.hpp"
#include <string>
-class Component : virtual public flat::core::object, virtual public flat::core::labelled
+namespace flat {
+
+class component : virtual public core::object, virtual public core::labelled
{
- Component * parent;
+ component * m_parent;
public:
/* Zero means attach to main window layer */
/* Send a 'created' signal in component reserved channel */
- Component(Component *parent = 0, const std::string& id = "");
+ component(component *parent = 0, const std::string& id = "");
/* Send a 'deleted' signal in component reserved channel */
- virtual ~Component();
+ virtual ~component();
- void setParent(Component*);
- Component * getParent();
+ void set_parent(component*);
+ component * parent();
virtual void render() = 0;
};
+}
+
#endif
diff --git a/engine/include/flatsurface.h b/engine/include/flatsurface.h
index fff07dd..5364e8e 100644
--- a/engine/include/flatsurface.h
+++ b/engine/include/flatsurface.h
@@ -2,11 +2,14 @@
#define __FLATSURFACE_H__
#include "core/object.hpp"
+#include "core/labelled.hpp"
#include <SDL2/SDL.h>
-class FlatSurface : public flat::core::object
+namespace flat {
+
+class surface : virtual public core::object, virtual public core::labelled
{
- SDL_Surface * surface;
+ SDL_Surface * sdl_surface;
SDL_Surface * parent;
SDL_Rect * offset;
@@ -16,12 +19,12 @@ class FlatSurface : public flat::core::object
public:
- FlatSurface(const char *filename, uint32_t format = SDL_PIXELFORMAT_RGBA32, SDL_Surface *parent = 0);
- FlatSurface(SDL_Surface *surface, SDL_Surface *parent = 0);
+ surface(const char *filename, uint32_t format = SDL_PIXELFORMAT_RGBA32, SDL_Surface *parent = 0);
+ surface(SDL_Surface *surf, SDL_Surface *parent = 0);
- FlatSurface(const FlatSurface&);
+ surface(const surface&);
- ~FlatSurface();
+ ~surface();
void setOffset(int, int, int w = -1, int h = -1);
@@ -52,4 +55,6 @@ public:
static SDL_Surface * copySurface(SDL_Surface*);
};
+}
+
#endif
diff --git a/engine/labelled.cpp b/engine/labelled.cpp
index 023023e..48e6091 100644
--- a/engine/labelled.cpp
+++ b/engine/labelled.cpp
@@ -6,7 +6,7 @@ using namespace std;
using namespace flat::core;
labelled::labelled(const std::string& label, bool allow_null)
- : label((!allow_null && label.empty()) ? object::random_label() : label) {}
+ : label((!allow_null && label.empty()) ? random_label() : label) {}
string labelled::random_label(uint8_t length) {
diff --git a/engine/signal.cpp b/engine/signal.cpp
index dc8dbf4..08d69fa 100644
--- a/engine/signal.cpp
+++ b/engine/signal.cpp
@@ -5,29 +5,39 @@
using namespace std;
using namespace flat::core;
-map<string, channel*> channel::channels;
+map<string, weak_ptr<channel>> channel::channels;
-channel::channel(const string& id, priority_t prior) : labelled(id)
+channel::channel(const string& id) : labelled(id), mapped(false)
{
}
channel::~channel()
{
// by default it should be there
- channels.erase(label);
+ if (mapped)
+ channels.erase(label);
}
-void channel::start()
+void channel::start(priority_t prior)
{
// Initialize task
- checker = flat::game_job().delegate_task<channel>(&channel::check_and_call, this, prior);
+ checker = flat::game_job().delegate_task(&channel::check_and_call, *this, prior);
}
bool channel::map()
{
- channel * other = find_channel(label);
+ if (!mapped) {
- return other ? false : channels.insert(pair<string, channel*>(label, this));
+ channel::ptr other = channel::find(label);
+
+ if (!other) {
+
+ channels.insert(pair<string, weak_ptr<channel>>(label, weak_from_this()));
+ mapped = true;
+ }
+ }
+
+ return mapped;
}
void channel::emit(const signal& sig)
@@ -40,7 +50,9 @@ bool channel::connect(listener::ptr l)
/* Control not to double */
for (auto lis : listeners)
{
- if (lis.get() == l.get())
+ auto pt = lis.lock();
+
+ if (pt.get() == l.get())
return false;
}
@@ -50,17 +62,34 @@ bool channel::connect(listener::ptr l)
void channel::disconnect(listener::ptr l)
{
- listeners.remove(l);
+ listeners.remove_if(
+ [l](weak_ptr<listener> p){
+
+ listener::ptr pt = p.lock();
+ return pt.get() == l.get();
+ });
+}
+
+bool channel::connect(listener* l)
+{
+ listener::ptr pt(l);
+ return connect(pt);
+}
+
+void channel::disconnect(listener* l)
+{
+ listener::ptr pt(l);
+ disconnect(pt);
}
channel::ptr channel::create(const string& id, priority_t prior)
{
- ptr out = std::make_ptr(new channel(id, prior));
+ ptr out = std::make_shared<channel>(id);
- if (!out.map())
+ if (!out->map())
return nullptr;
- out.start();
+ out->start(prior);
return out;
}
@@ -91,15 +120,15 @@ void channel::check_and_call()
if (pt = l.lock())
{
for (const auto& sig : stack)
- l->invoke(sig);
+ pt->invoke(sig);
}
else
to_erase.push_back(l);
}
/* Erase invalidated listeners */
- for (auto e : to_erase)
- listeners.remove(e);
+ listeners.remove_if(
+ [](weak_ptr<listener> e) { return e.expired(); });
stack.clear(); // TODO not so efficient
}
@@ -114,9 +143,9 @@ signal::signal( object *sender,
priority_t priority)
: labelled(id, true),
+ prioritized(priority),
sender(sender),
- m_package(package(data)),
- priority(priority)
+ m_package(package(data))
{
}
@@ -136,8 +165,7 @@ bool signal::emit(const string& chan) const
/* listener_s class */
-listener::listener( callback_t m_callback,
- const initializer_list<string>& filters)
+listener::listener(callback m_callback, const initializer_list<string>& filters)
: m_callback(m_callback), filters(filters)
{
@@ -176,17 +204,17 @@ bool listener::connect(const string& chan)
if (!c)
c->connect(this);
- return c;
+ return bool(c);
}
bool listener::disconnect(const string& chan)
{
- channel::ptr c = channel::find_channel(chan);
+ channel::ptr c = channel::find(chan);
if (!c)
c->disconnect(this);
- return c;
+ return bool(c);
}
void listener::invoke(const signal& sig)
diff --git a/lib/libmm b/lib/libmm
-Subproject ba03d198b82733043919fda918a80f4bb81800a
+Subproject e6595cf9c527e97198806c48aa0a14ae8e895e8
diff --git a/log.dat b/log.dat
new file mode 100644
index 0000000..aa94308
--- /dev/null
+++ b/log.dat
@@ -0,0 +1,1249 @@
+[1/19] compiling engine/flatwindow.cpp
+FAILED: build/engine/flatwindow.o
+g++ -fdiagnostics-color -g -Wall -pedantic -fPIC -std=c++17 -DDEBUG -I lib/include -I engine/include -c engine/flatwindow.cpp -o build/engine/flatwindow.o
+engine/flatwindow.cpp:6:10: fatal error: signal.hpp: No such file or directory
+ #include "signal.hpp"
+ ^~~~~~~~~~~~
+compilation terminated.
+[2/19] compiling engine/flatsurface.cpp
+FAILED: build/engine/flatsurface.o
+g++ -fdiagnostics-color -g -Wall -pedantic -fPIC -std=c++17 -DDEBUG -I lib/include -I engine/include -c engine/flatsurface.cpp -o build/engine/flatsurface.o
+engine/flatsurface.cpp:7:1: error: ‘FlatSurface’ does not name a type; did you mean ‘SDL_Surface’?
+ FlatSurface::FlatSurface(const char *filename, uint32_t format, SDL_Surface *parent)
+ ^~~~~~~~~~~
+ SDL_Surface
+engine/flatsurface.cpp:34:1: error: ‘FlatSurface’ does not name a type; did you mean ‘SDL_Surface’?
+ FlatSurface::FlatSurface(SDL_Surface *sdl_surface, SDL_Surface *parent)
+ ^~~~~~~~~~~
+ SDL_Surface
+engine/flatsurface.cpp:55:1: error: ‘FlatSurface’ does not name a type; did you mean ‘SDL_Surface’?
+ FlatSurface::FlatSurface(const FlatSurface &sprite)
+ ^~~~~~~~~~~
+ SDL_Surface
+engine/flatsurface.cpp:67:1: error: ‘FlatSurface’ does not name a type; did you mean ‘SDL_Surface’?
+ FlatSurface::~FlatSurface()
+ ^~~~~~~~~~~
+ SDL_Surface
+engine/flatsurface.cpp:75:6: error: ‘FlatSurface’ has not been declared
+ void FlatSurface::setOffset(int x, int y, int w, int h)
+ ^~~~~~~~~~~
+engine/flatsurface.cpp: In function ‘void setOffset(int, int, int, int)’:
+engine/flatsurface.cpp:77:5: error: ‘offset’ was not declared in this scope
+ offset->x = x;
+ ^~~~~~
+engine/flatsurface.cpp:77:5: note: suggested alternative: ‘off_t’
+ offset->x = x;
+ ^~~~~~
+ off_t
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:87:6: error: ‘FlatSurface’ has not been declared
+ void FlatSurface::setViewport(int x, int y, int w, int h)
+ ^~~~~~~~~~~
+engine/flatsurface.cpp: In function ‘void setViewport(int, int, int, int)’:
+engine/flatsurface.cpp:89:5: error: ‘viewport’ was not declared in this scope
+ viewport->x = x;
+ ^~~~~~~~
+engine/flatsurface.cpp:89:5: note: suggested alternative: ‘setViewport’
+ viewport->x = x;
+ ^~~~~~~~
+ setViewport
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:95:6: error: ‘FlatSurface’ has not been declared
+ void FlatSurface::setViewport(const SDL_Rect &rect)
+ ^~~~~~~~~~~
+engine/flatsurface.cpp: In function ‘void setViewport(const SDL_Rect&)’:
+engine/flatsurface.cpp:97:6: error: ‘viewport’ was not declared in this scope
+ *viewport = rect;
+ ^~~~~~~~
+engine/flatsurface.cpp:97:6: note: suggested alternative: ‘setViewport’
+ *viewport = rect;
+ ^~~~~~~~
+ setViewport
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:101:6: error: ‘FlatSurface’ has not been declared
+ void FlatSurface::setOffset(const SDL_Rect &offset)
+ ^~~~~~~~~~~
+engine/flatsurface.cpp: In function ‘void setOffset(const SDL_Rect&)’:
+engine/flatsurface.cpp:103:6: error: invalid use of ‘this’ in non-member function
+ *this->offset = offset;
+ ^~~~
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:106:18: error: ‘FlatSurface’ has not been declared
+ const SDL_Rect * FlatSurface::getOffset() const
+ ^~~~~~~~~~~
+engine/flatsurface.cpp:106:43: error: non-member function ‘const SDL_Rect* getOffset()’ cannot have cv-qualifier
+ const SDL_Rect * FlatSurface::getOffset() const
+ ^~~~~
+engine/flatsurface.cpp: In function ‘const SDL_Rect* getOffset()’:
+engine/flatsurface.cpp:108:12: error: ‘offset’ was not declared in this scope
+ return offset;
+ ^~~~~~
+engine/flatsurface.cpp:108:12: note: suggested alternative: ‘off_t’
+ return offset;
+ ^~~~~~
+ off_t
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:111:18: error: ‘FlatSurface’ has not been declared
+ const SDL_Rect * FlatSurface::getViewport() const
+ ^~~~~~~~~~~
+engine/flatsurface.cpp:111:45: error: non-member function ‘const SDL_Rect* getViewport()’ cannot have cv-qualifier
+ const SDL_Rect * FlatSurface::getViewport() const
+ ^~~~~
+engine/flatsurface.cpp: In function ‘const SDL_Rect* getViewport()’:
+engine/flatsurface.cpp:113:12: error: ‘viewport’ was not declared in this scope
+ return viewport;
+ ^~~~~~~~
+engine/flatsurface.cpp:113:12: note: suggested alternative: ‘getViewport’
+ return viewport;
+ ^~~~~~~~
+ getViewport
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:116:6: error: ‘FlatSurface’ has not been declared
+ void FlatSurface::setParent(SDL_Surface *parent)
+ ^~~~~~~~~~~
+engine/flatsurface.cpp: In function ‘void setParent(SDL_Surface*)’:
+engine/flatsurface.cpp:118:5: error: invalid use of ‘this’ in non-member function
+ this->parent = parent;
+ ^~~~
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:121:15: error: ‘FlatSurface’ has not been declared
+ SDL_Surface * FlatSurface::getParent()
+ ^~~~~~~~~~~
+engine/flatsurface.cpp: In function ‘SDL_Surface* getParent()’:
+engine/flatsurface.cpp:123:12: error: ‘parent’ was not declared in this scope
+ return parent;
+ ^~~~~~
+engine/flatsurface.cpp:123:12: note: suggested alternative: ‘__rint’
+ return parent;
+ ^~~~~~
+ __rint
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:126:15: error: ‘FlatSurface’ has not been declared
+ SDL_Surface * FlatSurface::getSurface()
+ ^~~~~~~~~~~
+engine/flatsurface.cpp: In function ‘SDL_Surface* getSurface()’:
+engine/flatsurface.cpp:128:12: error: ‘sdl_surface’ was not declared in this scope
+ return sdl_surface;
+ ^~~~~~~~~~~
+engine/flatsurface.cpp:128:12: note: suggested alternative: ‘SDL_Surface’
+ return sdl_surface;
+ ^~~~~~~~~~~
+ SDL_Surface
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:131:6: error: ‘FlatSurface’ has not been declared
+ void FlatSurface::setHidden(bool flag)
+ ^~~~~~~~~~~
+engine/flatsurface.cpp: In function ‘void setHidden(bool)’:
+engine/flatsurface.cpp:133:5: error: ‘hide’ was not declared in this scope
+ hide = flag;
+ ^~~~
+engine/flatsurface.cpp:133:5: note: suggested alternative: ‘time’
+ hide = flag;
+ ^~~~
+ time
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:136:6: error: ‘FlatSurface’ has not been declared
+ bool FlatSurface::isHidden() const
+ ^~~~~~~~~~~
+engine/flatsurface.cpp:136:30: error: non-member function ‘bool isHidden()’ cannot have cv-qualifier
+ bool FlatSurface::isHidden() const
+ ^~~~~
+engine/flatsurface.cpp: In function ‘bool isHidden()’:
+engine/flatsurface.cpp:138:12: error: ‘hide’ was not declared in this scope
+ return hide;
+ ^~~~
+engine/flatsurface.cpp:138:12: note: suggested alternative: ‘time’
+ return hide;
+ ^~~~
+ time
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:141:6: error: ‘FlatSurface’ has not been declared
+ void FlatSurface::blit()
+ ^~~~~~~~~~~
+engine/flatsurface.cpp: In function ‘void blit()’:
+engine/flatsurface.cpp:143:10: error: ‘hide’ was not declared in this scope
+ if (!hide)
+ ^~~~
+engine/flatsurface.cpp:143:10: note: suggested alternative: ‘time’
+ if (!hide)
+ ^~~~
+ time
+engine/flatsurface.cpp:144:25: error: ‘sdl_surface’ was not declared in this scope
+ SDL_BlitSurface(sdl_surface, viewport, parent, offset);
+ ^~~~~~~~~~~
+engine/flatsurface.cpp:144:25: note: suggested alternative: ‘SDL_Surface’
+ SDL_BlitSurface(sdl_surface, viewport, parent, offset);
+ ^~~~~~~~~~~
+ SDL_Surface
+engine/flatsurface.cpp:144:38: error: ‘viewport’ was not declared in this scope
+ SDL_BlitSurface(sdl_surface, viewport, parent, offset);
+ ^~~~~~~~
+engine/flatsurface.cpp:144:38: note: suggested alternative: ‘getViewport’
+ SDL_BlitSurface(sdl_surface, viewport, parent, offset);
+ ^~~~~~~~
+ getViewport
+engine/flatsurface.cpp:144:48: error: ‘parent’ was not declared in this scope
+ SDL_BlitSurface(sdl_surface, viewport, parent, offset);
+ ^~~~~~
+engine/flatsurface.cpp:144:48: note: suggested alternative: ‘__rint’
+ SDL_BlitSurface(sdl_surface, viewport, parent, offset);
+ ^~~~~~
+ __rint
+engine/flatsurface.cpp:144:56: error: ‘offset’ was not declared in this scope
+ SDL_BlitSurface(sdl_surface, viewport, parent, offset);
+ ^~~~~~
+engine/flatsurface.cpp:144:56: note: suggested alternative: ‘off_t’
+ SDL_BlitSurface(sdl_surface, viewport, parent, offset);
+ ^~~~~~
+ off_t
+engine/flatsurface.cpp: At global scope:
+engine/flatsurface.cpp:147:15: error: ‘FlatSurface’ has not been declared
+ SDL_Surface * FlatSurface::loadOptimizedSurface(const char *filename, uint32_t format)
+ ^~~~~~~~~~~
+engine/flatsurface.cpp:162:15: error: ‘FlatSurface’ has not been declared
+ SDL_Surface * FlatSurface::copySurface(SDL_Surface *src)
+ ^~~~~~~~~~~
+[3/19] compiling engine/signal.cpp
+FAILED: build/engine/signal.o
+g++ -fdiagnostics-color -g -Wall -pedantic -fPIC -std=c++17 -DDEBUG -I lib/include -I engine/include -c engine/signal.cpp -o build/engine/signal.o
+In file included from engine/signal.cpp:3:0:
+engine/include/flatland.h: In constructor ‘flat::flat_status::flat_status(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)’:
+engine/include/flatland.h:34:26: warning: ‘flat::flat_status::events’ will be initialized after [-Wreorder]
+ unsigned char events:1;
+ ^
+engine/include/flatland.h:31:28: warning: ‘unsigned char:1 flat::flat_status::joystick’ [-Wreorder]
+ unsigned char joystick:1;
+ ^
+engine/include/flatland.h:13:5: warning: when initialized here [-Wreorder]
+ flat_status(unsigned char video = 1,
+ ^~~~~~~~~~~
+engine/signal.cpp: In member function ‘void flat::core::channel::start(flat::core::priority_t)’:
+engine/signal.cpp:24:93: error: no matching function for call to ‘flat::core::job::delegate_task<flat::core::channel>(void (flat::core::channel::*)(), flat::core::channel&, flat::core::priority_t&)’
+ checker = flat::game_job().delegate_task<channel>(&channel::check_and_call, *this, prior);
+ ^
+In file included from engine/include/core/signal.hpp:8:0,
+ from engine/signal.cpp:1:
+engine/include/core/task.hpp:41:42: note: candidate: template<class R, class T> std::shared_ptr<flat::core::task> flat::core::job::delegate_task(R T::*, T&, flat::core::priority_t)
+ inline std::shared_ptr<task> delegate_task(R T::*mf, T& obj, priority_t p = priority_t::none) {
+ ^~~~~~~~~~~~~
+engine/include/core/task.hpp:41:42: note: template argument deduction/substitution failed:
+engine/signal.cpp:24:93: note: mismatched types ‘flat::core::channel’ and ‘void()’
+ checker = flat::game_job().delegate_task<channel>(&channel::check_and_call, *this, prior);
+ ^
+engine/signal.cpp: In member function ‘void flat::core::channel::check_and_call()’:
+engine/signal.cpp:106:22: error: base operand of ‘->’ has non-pointer type ‘std::weak_ptr<flat::core::listener>’
+ l->invoke(sig);
+ ^~
+engine/signal.cpp: In constructor ‘flat::core::signal::signal(flat::core::object*, const string&, void*, flat::core::priority_t)’:
+engine/signal.cpp:131:9: error: class ‘flat::core::signal’ does not have any field named ‘priority’
+ priority(priority)
+ ^~~~~~~~
+engine/signal.cpp: At global scope:
+engine/signal.cpp:151:19: error: expected constructor, destructor, or type conversion before ‘(’ token
+ listener::listener( callback_t m_callback,
+ ^
+engine/signal.cpp: In member function ‘bool flat::core::listener::connect(const string&)’:
+engine/signal.cpp:189:24: error: no matching function for call to ‘flat::core::channel::connect(flat::core::listener*)’
+ c->connect(this);
+ ^
+engine/signal.cpp:48:6: note: candidate: bool flat::core::channel::connect(flat::core::listener::ptr)
+ bool channel::connect(listener::ptr l)
+ ^~~~~~~
+engine/signal.cpp:48:6: note: no known conversion for argument 1 from ‘flat::core::listener*’ to ‘flat::core::listener::ptr {aka std::shared_ptr<flat::core::listener>}’
+engine/signal.cpp:191:12: error: cannot convert ‘flat::core::channel::ptr {aka std::shared_ptr<flat::core::channel>}’ to ‘bool’ in return
+ return c;
+ ^
+engine/signal.cpp: In member function ‘bool flat::core::listener::disconnect(const string&)’:
+engine/signal.cpp:196:31: error: ‘find_channel’ is not a member of ‘flat::core::channel’
+ channel::ptr c = channel::find_channel(chan);
+ ^~~~~~~~~~~~
+engine/signal.cpp:199:27: error: no matching function for call to ‘flat::core::channel::disconnect(flat::core::listener*)’
+ c->disconnect(this);
+ ^
+engine/signal.cpp:63:6: note: candidate: void flat::core::channel::disconnect(flat::core::listener::ptr)
+ void channel::disconnect(listener::ptr l)
+ ^~~~~~~
+engine/signal.cpp:63:6: note: no known conversion for argument 1 from ‘flat::core::listener*’ to ‘flat::core::listener::ptr {aka std::shared_ptr<flat::core::listener>}’
+engine/signal.cpp:201:12: error: cannot convert ‘flat::core::channel::ptr {aka std::shared_ptr<flat::core::channel>}’ to ‘bool’ in return
+ return c;
+ ^
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc: In instantiation of ‘void std::__cxx11::list<_Tp, _Alloc>::remove(const value_type&) [with _Tp = std::weak_ptr<flat::core::listener>; _Alloc = std::allocator<std::weak_ptr<flat::core::listener> >; std::__cxx11::list<_Tp, _Alloc>::value_type = std::weak_ptr<flat::core::listener>]’:
+engine/signal.cpp:65:23: required from here
+/usr/include/c++/7/bits/list.tcc:334:17: error: no match for ‘operator==’ (operand types are ‘std::weak_ptr<flat::core::listener>’ and ‘const value_type {aka const std::weak_ptr<flat::core::listener>}’)
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from engine/include/core/task.hpp:7:0,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/variant:844:3: note: candidate: constexpr bool std::operator==(std::monostate, std::monostate)
+ _VARIANT_RELATION_FUNCTION_TEMPLATE(==, equal)
+ ^
+/usr/include/c++/7/variant:844:3: note: no known conversion for argument 1 from ‘std::weak_ptr<flat::core::listener>’ to ‘std::monostate’
+/usr/include/c++/7/variant:844:3: note: candidate: template<class ... _Types> constexpr bool std::operator==(const std::variant<_Types ...>&, const std::variant<_Types ...>&)
+ _VARIANT_RELATION_FUNCTION_TEMPLATE(==, equal)
+ ^
+/usr/include/c++/7/variant:844:3: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::variant<_Types ...>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/vector:64:0,
+ from /usr/include/c++/7/functional:61,
+ from engine/include/core/task.hpp:6,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_vector.h:1596:5: note: candidate: template<class _Tp, class _Alloc> bool std::operator==(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&)
+ operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_vector.h:1596:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::vector<_Tp, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/unordered_map:48:0,
+ from /usr/include/c++/7/functional:60,
+ from engine/include/core/task.hpp:6,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/unordered_map.h:1923:5: note: candidate: template<class _Key, class _Tp, class _Hash, class _Pred, class _Alloc> bool std::operator==(const std::unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>&, const std::unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>&)
+ operator==(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/unordered_map.h:1923:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/unordered_map:48:0,
+ from /usr/include/c++/7/functional:60,
+ from engine/include/core/task.hpp:6,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/unordered_map.h:1911:5: note: candidate: template<class _Key, class _Tp, class _Hash, class _Pred, class _Alloc> bool std::operator==(const std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>&, const std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>&)
+ operator==(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/unordered_map.h:1911:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/functional:58:0,
+ from engine/include/core/task.hpp:6,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/std_function.h:770:5: note: candidate: template<class _Res, class ... _Args> bool std::operator==(std::nullptr_t, const std::function<_Res(_ArgTypes ...)>&)
+ operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/bits/std_function.h:770:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘const value_type {aka const std::weak_ptr<flat::core::listener>}’ is not derived from ‘const std::function<_Res(_ArgTypes ...)>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/functional:58:0,
+ from engine/include/core/task.hpp:6,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/std_function.h:764:5: note: candidate: template<class _Res, class ... _Args> bool std::operator==(const std::function<_Res(_ArgTypes ...)>&, std::nullptr_t)
+ operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/bits/std_function.h:764:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::function<_Res(_ArgTypes ...)>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/unordered_set:48:0,
+ from engine/include/core/task.hpp:5,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/unordered_set.h:1547:5: note: candidate: template<class _Value, class _Hash, class _Pred, class _Alloc> bool std::operator==(const std::unordered_multiset<_Value, _Hash, _Pred, _Alloc>&, const std::unordered_multiset<_Value, _Hash, _Pred, _Alloc>&)
+ operator==(const unordered_multiset<_Value, _Hash, _Pred, _Alloc>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/unordered_set.h:1547:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::unordered_multiset<_Value, _Hash, _Pred, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/unordered_set:48:0,
+ from engine/include/core/task.hpp:5,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/unordered_set.h:1535:5: note: candidate: template<class _Value, class _Hash, class _Pred, class _Alloc> bool std::operator==(const std::unordered_set<_Value, _Hash, _Pred, _Alloc>&, const std::unordered_set<_Value, _Hash, _Pred, _Alloc>&)
+ operator==(const unordered_set<_Value, _Hash, _Pred, _Alloc>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/unordered_set.h:1535:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::unordered_set<_Value, _Hash, _Pred, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/memory:81:0,
+ from engine/include/core/priority.hpp:3,
+ from engine/include/core/task.hpp:3,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/shared_ptr.h:378:5: note: candidate: template<class _Tp> bool std::operator==(std::nullptr_t, const std::shared_ptr<_Tp>&)
+ operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/bits/shared_ptr.h:378:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘const value_type {aka const std::weak_ptr<flat::core::listener>}’ is not derived from ‘const std::shared_ptr<_Tp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/memory:81:0,
+ from engine/include/core/priority.hpp:3,
+ from engine/include/core/task.hpp:3,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/shared_ptr.h:373:5: note: candidate: template<class _Tp> bool std::operator==(const std::shared_ptr<_Tp>&, std::nullptr_t)
+ operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/bits/shared_ptr.h:373:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::shared_ptr<_Tp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/memory:81:0,
+ from engine/include/core/priority.hpp:3,
+ from engine/include/core/task.hpp:3,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/shared_ptr.h:368:5: note: candidate: template<class _Tp, class _Up> bool std::operator==(const std::shared_ptr<_Tp>&, const std::shared_ptr<_Up>&)
+ operator==(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/bits/shared_ptr.h:368:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::shared_ptr<_Tp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/shared_ptr.h:52:0,
+ from /usr/include/c++/7/memory:81,
+ from engine/include/core/priority.hpp:3,
+ from engine/include/core/task.hpp:3,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/shared_ptr_base.h:1420:5: note: candidate: template<class _Tp, __gnu_cxx::_Lock_policy _Lp> bool std::operator==(std::nullptr_t, const std::__shared_ptr<_Tp, _Lp>&)
+ operator==(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/bits/shared_ptr_base.h:1420:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘const value_type {aka const std::weak_ptr<flat::core::listener>}’ is not derived from ‘const std::__shared_ptr<_Tp, _Lp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/shared_ptr.h:52:0,
+ from /usr/include/c++/7/memory:81,
+ from engine/include/core/priority.hpp:3,
+ from engine/include/core/task.hpp:3,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/shared_ptr_base.h:1415:5: note: candidate: template<class _Tp, __gnu_cxx::_Lock_policy _Lp> bool std::operator==(const std::__shared_ptr<_Tp, _Lp>&, std::nullptr_t)
+ operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/bits/shared_ptr_base.h:1415:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::__shared_ptr<_Tp, _Lp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/shared_ptr.h:52:0,
+ from /usr/include/c++/7/memory:81,
+ from engine/include/core/priority.hpp:3,
+ from engine/include/core/task.hpp:3,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/shared_ptr_base.h:1409:5: note: candidate: template<class _Tp1, class _Tp2, __gnu_cxx::_Lock_policy _Lp> bool std::operator==(const std::__shared_ptr<_Tp1, _Lp>&, const std::__shared_ptr<_Tp2, _Lp>&)
+ operator==(const __shared_ptr<_Tp1, _Lp>& __a,
+ ^~~~~~~~
+/usr/include/c++/7/bits/shared_ptr_base.h:1409:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::__shared_ptr<_Tp1, _Lp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/memory:80:0,
+ from engine/include/core/priority.hpp:3,
+ from engine/include/core/task.hpp:3,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/unique_ptr.h:694:5: note: candidate: template<class _Tp, class _Dp> bool std::operator==(std::nullptr_t, const std::unique_ptr<_Tp, _Dp>&)
+ operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/bits/unique_ptr.h:694:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘const value_type {aka const std::weak_ptr<flat::core::listener>}’ is not derived from ‘const std::unique_ptr<_Tp, _Dp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/memory:80:0,
+ from engine/include/core/priority.hpp:3,
+ from engine/include/core/task.hpp:3,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/unique_ptr.h:689:5: note: candidate: template<class _Tp, class _Dp> bool std::operator==(const std::unique_ptr<_Tp, _Dp>&, std::nullptr_t)
+ operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/bits/unique_ptr.h:689:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::unique_ptr<_Tp, _Dp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/memory:80:0,
+ from engine/include/core/priority.hpp:3,
+ from engine/include/core/task.hpp:3,
+ from engine/include/core/signal.hpp:8,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/unique_ptr.h:683:5: note: candidate: template<class _Tp, class _Dp, class _Up, class _Ep> bool std::operator==(const std::unique_ptr<_Tp, _Dp>&, const std::unique_ptr<_Up, _Ep>&)
+ operator==(const unique_ptr<_Tp, _Dp>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/unique_ptr.h:683:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::unique_ptr<_Tp, _Dp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/set:62:0,
+ from engine/include/core/signal.hpp:5,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_multiset.h:896:5: note: candidate: template<class _Key, class _Compare, class _Alloc> bool std::operator==(const std::multiset<_Key, _Compare, _Alloc>&, const std::multiset<_Key, _Compare, _Alloc>&)
+ operator==(const multiset<_Key, _Compare, _Alloc>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_multiset.h:896:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::multiset<_Key, _Compare, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/set:61:0,
+ from engine/include/core/signal.hpp:5,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_set.h:913:5: note: candidate: template<class _Key, class _Compare, class _Alloc> bool std::operator==(const std::set<_Key, _Compare, _Alloc>&, const std::set<_Key, _Compare, _Alloc>&)
+ operator==(const set<_Key, _Compare, _Alloc>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_set.h:913:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::set<_Key, _Compare, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/list:63:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_list.h:1884:5: note: candidate: template<class _Tp, class _Alloc> bool std::operator==(const std::__cxx11::list<_Tp, _Alloc>&, const std::__cxx11::list<_Tp, _Alloc>&)
+ operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_list.h:1884:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::__cxx11::list<_Tp, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/list:63:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_list.h:287:5: note: candidate: template<class _Val> bool std::operator==(const std::_List_iterator<_Tp>&, const std::_List_const_iterator<_Tp>&)
+ operator==(const _List_iterator<_Val>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_list.h:287:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::_List_iterator<_Tp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/map:62:0,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_multimap.h:1061:5: note: candidate: template<class _Key, class _Tp, class _Compare, class _Alloc> bool std::operator==(const std::multimap<_Key, _Tp, _Compare, _Alloc>&, const std::multimap<_Key, _Tp, _Compare, _Alloc>&)
+ operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_multimap.h:1061:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::multimap<_Key, _Tp, _Compare, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/map:61:0,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_map.h:1395:5: note: candidate: template<class _Key, class _Tp, class _Compare, class _Alloc> bool std::operator==(const std::map<_Key, _Tp, _Compare, _Alloc>&, const std::map<_Key, _Tp, _Compare, _Alloc>&)
+ operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_map.h:1395:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::map<_Key, _Tp, _Compare, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/stl_map.h:63:0,
+ from /usr/include/c++/7/map:61,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/tuple:1397:5: note: candidate: template<class ... _TElements, class ... _UElements> constexpr bool std::operator==(const std::tuple<_Tps ...>&, const std::tuple<_Args2 ...>&)
+ operator==(const tuple<_TElements...>& __t,
+ ^~~~~~~~
+/usr/include/c++/7/tuple:1397:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::tuple<_Tps ...>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/tuple:39:0,
+ from /usr/include/c++/7/bits/stl_map.h:63,
+ from /usr/include/c++/7/map:61,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/array:252:5: note: candidate: template<class _Tp, long unsigned int _Nm> bool std::operator==(const std::array<_Tp, _Nm>&, const std::array<_Tp, _Nm>&)
+ operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
+ ^~~~~~~~
+/usr/include/c++/7/array:252:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::array<_Tp, _Nm>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/map:60:0,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_tree.h:1533:5: note: candidate: template<class _Key, class _Val, class _KeyOfValue, class _Compare, class _Alloc> bool std::operator==(const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&, const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&)
+ operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_tree.h:1533:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/map:60:0,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_tree.h:406:5: note: candidate: template<class _Val> bool std::operator==(const std::_Rb_tree_iterator<_Tp>&, const std::_Rb_tree_const_iterator<_Val>&)
+ operator==(const _Rb_tree_iterator<_Val>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_tree.h:406:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::_Rb_tree_iterator<_Tp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/node_handle.h:39:0,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/optional:910:5: note: candidate: template<class _Tp, class _Up> constexpr std::__optional_relop_t<decltype ((declval<_Up>() == declval<_Tp>()))> std::operator==(const _Up&, const std::optional<_Tp>&)
+ operator==(const _Up& __lhs, const optional<_Tp>& __rhs)
+ ^~~~~~~~
+/usr/include/c++/7/optional:910:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘const value_type {aka const std::weak_ptr<flat::core::listener>}’ is not derived from ‘const std::optional<_Tp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/node_handle.h:39:0,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/optional:904:5: note: candidate: template<class _Tp, class _Up> constexpr std::__optional_relop_t<decltype ((declval<_Tp>() == declval<_Up>()))> std::operator==(const std::optional<_Tp>&, const _Up&)
+ operator==(const optional<_Tp>& __lhs, const _Up& __rhs)
+ ^~~~~~~~
+/usr/include/c++/7/optional:904:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::optional<_Tp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/node_handle.h:39:0,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/optional:848:5: note: candidate: template<class _Tp> constexpr bool std::operator==(std::nullopt_t, const std::optional<_Tp>&)
+ operator==(nullopt_t, const optional<_Tp>& __rhs) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/optional:848:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘const value_type {aka const std::weak_ptr<flat::core::listener>}’ is not derived from ‘const std::optional<_Tp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/node_handle.h:39:0,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/optional:843:5: note: candidate: template<class _Tp> constexpr bool std::operator==(const std::optional<_Tp>&, std::nullopt_t)
+ operator==(const optional<_Tp>& __lhs, nullopt_t) noexcept
+ ^~~~~~~~
+/usr/include/c++/7/optional:843:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::optional<_Tp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/node_handle.h:39:0,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/optional:792:5: note: candidate: template<class _Tp, class _Up> constexpr std::__optional_relop_t<decltype ((declval<_Tp>() == declval<_Up>()))> std::operator==(const std::optional<_Tp>&, const std::optional<_Up>&)
+ operator==(const optional<_Tp>& __lhs, const optional<_Up>& __rhs)
+ ^~~~~~~~
+/usr/include/c++/7/optional:792:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::optional<_Tp>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/string:52:0,
+ from /usr/include/c++/7/stdexcept:39,
+ from /usr/include/c++/7/optional:38,
+ from /usr/include/c++/7/bits/node_handle.h:39,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/basic_string.h:6034:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _CharT*)
+ operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+ ^~~~~~~~
+/usr/include/c++/7/bits/basic_string.h:6034:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/string:52:0,
+ from /usr/include/c++/7/stdexcept:39,
+ from /usr/include/c++/7/optional:38,
+ from /usr/include/c++/7/bits/node_handle.h:39,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/basic_string.h:6022:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
+ operator==(const _CharT* __lhs,
+ ^~~~~~~~
+/usr/include/c++/7/bits/basic_string.h:6022:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: mismatched types ‘const _CharT*’ and ‘std::weak_ptr<flat::core::listener>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/string:52:0,
+ from /usr/include/c++/7/stdexcept:39,
+ from /usr/include/c++/7/optional:38,
+ from /usr/include/c++/7/bits/node_handle.h:39,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/basic_string.h:6008:5: note: candidate: template<class _CharT> typename __gnu_cxx::__enable_if<std::__is_char<_Tp>::__value, bool>::__type std::operator==(const std::__cxx11::basic_string<_CharT>&, const std::__cxx11::basic_string<_CharT>&)
+ operator==(const basic_string<_CharT>& __lhs,
+ ^~~~~~~~
+/usr/include/c++/7/bits/basic_string.h:6008:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::__cxx11::basic_string<_CharT>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/string:52:0,
+ from /usr/include/c++/7/stdexcept:39,
+ from /usr/include/c++/7/optional:38,
+ from /usr/include/c++/7/bits/node_handle.h:39,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/basic_string.h:6000:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
+ operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+ ^~~~~~~~
+/usr/include/c++/7/bits/basic_string.h:6000:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/basic_string.h:48:0,
+ from /usr/include/c++/7/string:52,
+ from /usr/include/c++/7/stdexcept:39,
+ from /usr/include/c++/7/optional:38,
+ from /usr/include/c++/7/bits/node_handle.h:39,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/string_view:462:5: note: candidate: template<class _CharT, class _Traits> constexpr bool std::operator==(std::__detail::__idt<std::basic_string_view<_CharT, _Traits> >, std::basic_string_view<_CharT, _Traits>)
+ operator==(__detail::__idt<basic_string_view<_CharT, _Traits>> __x,
+ ^~~~~~~~
+/usr/include/c++/7/string_view:462:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘std::basic_string_view<_CharT, _Traits>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/basic_string.h:48:0,
+ from /usr/include/c++/7/string:52,
+ from /usr/include/c++/7/stdexcept:39,
+ from /usr/include/c++/7/optional:38,
+ from /usr/include/c++/7/bits/node_handle.h:39,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/string_view:456:5: note: candidate: template<class _CharT, class _Traits> constexpr bool std::operator==(std::basic_string_view<_CharT, _Traits>, std::__detail::__idt<std::basic_string_view<_CharT, _Traits> >)
+ operator==(basic_string_view<_CharT, _Traits> __x,
+ ^~~~~~~~
+/usr/include/c++/7/string_view:456:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘std::basic_string_view<_CharT, _Traits>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/basic_string.h:48:0,
+ from /usr/include/c++/7/string:52,
+ from /usr/include/c++/7/stdexcept:39,
+ from /usr/include/c++/7/optional:38,
+ from /usr/include/c++/7/bits/node_handle.h:39,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/string_view:450:5: note: candidate: template<class _CharT, class _Traits> constexpr bool std::operator==(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)
+ operator==(basic_string_view<_CharT, _Traits> __x,
+ ^~~~~~~~
+/usr/include/c++/7/string_view:450:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘std::basic_string_view<_CharT, _Traits>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/char_traits.h:40:0,
+ from /usr/include/c++/7/string:40,
+ from /usr/include/c++/7/stdexcept:39,
+ from /usr/include/c++/7/optional:38,
+ from /usr/include/c++/7/bits/node_handle.h:39,
+ from /usr/include/c++/7/bits/stl_tree.h:72,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/postypes.h:216:5: note: candidate: template<class _StateT> bool std::operator==(const std::fpos<_StateT>&, const std::fpos<_StateT>&)
+ operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
+ ^~~~~~~~
+/usr/include/c++/7/bits/postypes.h:216:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::fpos<_StateT>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/stl_tree.h:64:0,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/allocator.h:152:5: note: candidate: template<class _Tp> bool std::operator==(const std::allocator<_Tp1>&, const std::allocator<_Tp1>&)
+ operator==(const allocator<_Tp>&, const allocator<_Tp>&)
+ ^~~~~~~~
+/usr/include/c++/7/bits/allocator.h:152:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::allocator<_Tp1>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/stl_tree.h:64:0,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/allocator.h:146:5: note: candidate: template<class _T1, class _T2> bool std::operator==(const std::allocator<_Tp1>&, const std::allocator<_T2>&)
+ operator==(const allocator<_T1>&, const allocator<_T2>&)
+ ^~~~~~~~
+/usr/include/c++/7/bits/allocator.h:146:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::allocator<_Tp1>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
+ from /usr/include/c++/7/bits/stl_tree.h:63,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_iterator.h:1124:5: note: candidate: template<class _Iterator> constexpr bool std::operator==(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)
+ operator==(const move_iterator<_Iterator>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_iterator.h:1124:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::move_iterator<_IteratorL>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
+ from /usr/include/c++/7/bits/stl_tree.h:63,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_iterator.h:1118:5: note: candidate: template<class _IteratorL, class _IteratorR> constexpr bool std::operator==(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)
+ operator==(const move_iterator<_IteratorL>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_iterator.h:1118:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::move_iterator<_IteratorL>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
+ from /usr/include/c++/7/bits/stl_tree.h:63,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_iterator.h:337:5: note: candidate: template<class _IteratorL, class _IteratorR> constexpr bool std::operator==(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)
+ operator==(const reverse_iterator<_IteratorL>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_iterator.h:337:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::reverse_iterator<_Iterator>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
+ from /usr/include/c++/7/bits/stl_tree.h:63,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_iterator.h:299:5: note: candidate: template<class _Iterator> constexpr bool std::operator==(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)
+ operator==(const reverse_iterator<_Iterator>& __x,
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_iterator.h:299:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::reverse_iterator<_Iterator>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
+ from /usr/include/c++/7/bits/stl_tree.h:63,
+ from /usr/include/c++/7/map:60,
+ from engine/include/core/signal.hpp:3,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/stl_pair.h:443:5: note: candidate: template<class _T1, class _T2> constexpr bool std::operator==(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)
+ operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
+ ^~~~~~~~
+/usr/include/c++/7/bits/stl_pair.h:443:5: note: template argument deduction/substitution failed:
+In file included from /usr/include/c++/7/list:64:0,
+ from engine/include/core/signal.hpp:4,
+ from engine/signal.cpp:1:
+/usr/include/c++/7/bits/list.tcc:334:17: note: ‘std::weak_ptr<flat::core::listener>’ is not derived from ‘const std::pair<_T1, _T2>’
+ if (*__first == __value)
+ ~~~~~~~~~^~~~~~~~~~
+[4/19] compiling engine/focusable.cpp
+FAILED: build/engine/focusable.o
+g++ -fdiagnostics-color -g -Wall -pedantic -fPIC -std=c++17 -DDEBUG -I lib/include -I engine/include -c engine/focusable.cpp -o build/engine/focusable.o
+engine/focusable.cpp: In constructor ‘Focusable::Focusable(bool)’:
+engine/focusable.cpp:7:25: error: ‘flat::core::task’ is not a template
+ event_trigger = new flat::core::task<Focusable>(this, &Focusable::serial_precall, 0);
+ ^~~~
+engine/focusable.cpp:7:88: error: no matching function for call to ‘flat::core::task::task(Focusable*, void (Focusable::*)(void*), int)’
+ event_trigger = new flat::core::task<Focusable>(this, &Focusable::serial_precall, 0);
+ ^
+In file included from engine/focusable.cpp:2:0:
+engine/include/core/task.hpp:22:13: note: candidate: flat::core::task::task(flat::core::task::callback, flat::core::priority_t)
+ task(callback f, priority_t p = priority_t::none);
+ ^~~~
+engine/include/core/task.hpp:22:13: note: candidate expects 2 arguments, 3 provided
+engine/include/core/task.hpp:16:15: note: candidate: flat::core::task::task(const flat::core::task&)
+ class task : public prioritized {
+ ^~~~
+engine/include/core/task.hpp:16:15: note: candidate expects 1 argument, 3 provided
+engine/include/core/task.hpp:16:15: note: candidate: flat::core::task::task(flat::core::task&&)
+engine/include/core/task.hpp:16:15: note: candidate expects 1 argument, 3 provided
+engine/focusable.cpp: In destructor ‘virtual Focusable::~Focusable()’:
+engine/focusable.cpp:12:12: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete]
+ delete event_trigger;
+ ^~~~~~~~~~~~~
+engine/focusable.cpp:12:12: warning: invalid use of incomplete type ‘class task_s’
+In file included from engine/include/serial/focusable.h:5:0,
+ from engine/focusable.cpp:1:
+engine/include/types.hpp:32:7: note: forward declaration of ‘class task_s’
+ class task_s;
+ ^~~~~~
+engine/focusable.cpp:12:12: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined
+ delete event_trigger;
+ ^~~~~~~~~~~~~
+[5/19] compiling engine/flatserial.cpp
+FAILED: build/engine/flatserial.o
+g++ -fdiagnostics-color -g -Wall -pedantic -fPIC -std=c++17 -DDEBUG -I lib/include -I engine/include -c engine/flatserial.cpp -o build/engine/flatserial.o
+engine/flatserial.cpp: In constructor ‘SDL_EventCollector::SDL_EventCollector()’:
+engine/flatserial.cpp:7:19: error: ‘flat::core::task’ is not a template
+ checker = new flat::core::task<SDL_EventCollector>(this, &SDL_EventCollector::collect, 0, true, 0);
+ ^~~~
+engine/flatserial.cpp:7:102: error: no matching function for call to ‘flat::core::task::task(SDL_EventCollector*, void (SDL_EventCollector::*)(void*), int, bool, int)’
+ checker = new flat::core::task<SDL_EventCollector>(this, &SDL_EventCollector::collect, 0, true, 0);
+ ^
+In file included from engine/flatserial.cpp:2:0:
+engine/include/core/task.hpp:22:13: note: candidate: flat::core::task::task(flat::core::task::callback, flat::core::priority_t)
+ task(callback f, priority_t p = priority_t::none);
+ ^~~~
+engine/include/core/task.hpp:22:13: note: candidate expects 2 arguments, 5 provided
+engine/include/core/task.hpp:16:15: note: candidate: flat::core::task::task(const flat::core::task&)
+ class task : public prioritized {
+ ^~~~
+engine/include/core/task.hpp:16:15: note: candidate expects 1 argument, 5 provided
+engine/include/core/task.hpp:16:15: note: candidate: flat::core::task::task(flat::core::task&&)
+engine/include/core/task.hpp:16:15: note: candidate expects 1 argument, 5 provided
+engine/flatserial.cpp:10:18: error: ‘flat::core::task’ is not a template
+ eraser = new flat::core::task<SDL_EventCollector>(this, &SDL_EventCollector::erase, 0, false, 0xff);
+ ^~~~
+engine/flatserial.cpp:10:103: error: no matching function for call to ‘flat::core::task::task(SDL_EventCollector*, void (SDL_EventCollector::*)(void*), int, bool, int)’
+ eraser = new flat::core::task<SDL_EventCollector>(this, &SDL_EventCollector::erase, 0, false, 0xff);
+ ^
+In file included from engine/flatserial.cpp:2:0:
+engine/include/core/task.hpp:22:13: note: candidate: flat::core::task::task(flat::core::task::callback, flat::core::priority_t)
+ task(callback f, priority_t p = priority_t::none);
+ ^~~~
+engine/include/core/task.hpp:22:13: note: candidate expects 2 arguments, 5 provided
+engine/include/core/task.hpp:16:15: note: candidate: flat::core::task::task(const flat::core::task&)
+ class task : public prioritized {
+ ^~~~
+engine/include/core/task.hpp:16:15: note: candidate expects 1 argument, 5 provided
+engine/include/core/task.hpp:16:15: note: candidate: flat::core::task::task(flat::core::task&&)
+engine/include/core/task.hpp:16:15: note: candidate expects 1 argument, 5 provided
+engine/flatserial.cpp: In destructor ‘SDL_EventCollector::~SDL_EventCollector()’:
+engine/flatserial.cpp:15:12: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete]
+ delete checker;
+ ^~~~~~~
+engine/flatserial.cpp:15:12: warning: invalid use of incomplete type ‘class task_s’
+In file included from engine/include/flatserial.h:4:0,
+ from engine/flatserial.cpp:1:
+engine/include/types.hpp:32:7: note: forward declaration of ‘class task_s’
+ class task_s;
+ ^~~~~~
+engine/flatserial.cpp:15:12: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined
+ delete checker;
+ ^~~~~~~
+engine/flatserial.cpp:16:12: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete]
+ delete eraser;
+ ^~~~~~
+engine/flatserial.cpp:16:12: warning: invalid use of incomplete type ‘class task_s’
+In file included from engine/include/flatserial.h:4:0,
+ from engine/flatserial.cpp:1:
+engine/include/types.hpp:32:7: note: forward declaration of ‘class task_s’
+ class task_s;
+ ^~~~~~
+engine/flatserial.cpp:16:12: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined
+ delete eraser;
+ ^~~~~~
+engine/flatserial.cpp: In member function ‘const std::vector<SDL_Event>& SDL_EventCollector::getStack(uint32_t) const’:
+engine/flatserial.cpp:94:1: warning: control reaches end of non-void function [-Wreturn-type]
+ }
+ ^
+[6/19] compiling engine/flatland.cpp
+FAILED: build/engine/flatland.o
+g++ -fdiagnostics-color -g -Wall -pedantic -fPIC -std=c++17 -DDEBUG -I lib/include -I engine/include -c engine/flatland.cpp -o build/engine/flatland.o
+In file included from engine/flatland.cpp:1:0:
+engine/include/flatland.h: In constructor ‘flat::flat_status::flat_status(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)’:
+engine/include/flatland.h:34:26: warning: ‘flat::flat_status::events’ will be initialized after [-Wreorder]
+ unsigned char events:1;
+ ^
+engine/include/flatland.h:31:28: warning: ‘unsigned char:1 flat::flat_status::joystick’ [-Wreorder]
+ unsigned char joystick:1;
+ ^
+engine/include/flatland.h:13:5: warning: when initialized here [-Wreorder]
+ flat_status(unsigned char video = 1,
+ ^~~~~~~~~~~
+engine/flatland.cpp: At global scope:
+engine/flatland.cpp:23:1: error: ‘SignalChannel’ does not name a type
+ SignalChannel * core = 0;
+ ^~~~~~~~~~~~~
+engine/flatland.cpp:25:1: error: ‘gameloop’ does not name a type
+ gameloop loop_function;
+ ^~~~~~~~
+engine/flatland.cpp:27:1: error: ‘flat_status’ does not name a type; did you mean ‘window_status’?
+ flat_status status;
+ ^~~~~~~~~~~
+ window_status
+engine/flatland.cpp:32:32: error: ‘flat_status’ does not name a type; did you mean ‘window_status’?
+ uint32_t status_to_flags(const flat_status& s)
+ ^~~~~~~~~~~
+ window_status
+engine/flatland.cpp: In function ‘uint32_t status_to_flags(const int&)’:
+engine/flatland.cpp:36:11: error: request for member ‘audio’ in ‘s’, which is of non-class type ‘const int’
+ if (s.audio)
+ ^~~~~
+engine/flatland.cpp:38:11: error: request for member ‘timer’ in ‘s’, which is of non-class type ‘const int’
+ if (s.timer)
+ ^~~~~
+engine/flatland.cpp:40:11: error: request for member ‘video’ in ‘s’, which is of non-class type ‘const int’
+ if (s.video)
+ ^~~~~
+engine/flatland.cpp:42:11: error: request for member ‘joystick’ in ‘s’, which is of non-class type ‘const int’
+ if (s.joystick)
+ ^~~~~~~~
+engine/flatland.cpp:44:11: error: request for member ‘haptic’ in ‘s’, which is of non-class type ‘const int’
+ if (s.haptic)
+ ^~~~~~
+engine/flatland.cpp:46:11: error: request for member ‘controller’ in ‘s’, which is of non-class type ‘const int’
+ if (s.controller)
+ ^~~~~~~~~~
+engine/flatland.cpp:48:11: error: request for member ‘events’ in ‘s’, which is of non-class type ‘const int’
+ if (s.events)
+ ^~~~~~
+engine/flatland.cpp:50:11: error: request for member ‘haptic’ in ‘s’, which is of non-class type ‘const int’
+ if (s.haptic)
+ ^~~~~~
+engine/flatland.cpp:52:11: error: request for member ‘controller’ in ‘s’, which is of non-class type ‘const int’
+ if (s.controller)
+ ^~~~~~~~~~
+engine/flatland.cpp:54:11: error: request for member ‘events’ in ‘s’, which is of non-class type ‘const int’
+ if (s.events)
+ ^~~~~~
+engine/flatland.cpp: At global scope:
+engine/flatland.cpp:62:1: error: expected class-name before ‘{’ token
+ {
+ ^
+engine/flatland.cpp:63:18: error: ‘virtual void QuitListener::callback(flat::core::object*, void*)’ marked ‘override’, but does not override
+ virtual void callback(flat::core::object*, void*) override
+ ^~~~~~~~
+engine/flatland.cpp: In member function ‘virtual void QuitListener::callback(flat::core::object*, void*)’:
+engine/flatland.cpp:66:9: error: ‘quit_flatland’ was not declared in this scope
+ quit_flatland();
+ ^~~~~~~~~~~~~
+engine/flatland.cpp:66:9: note: suggested alternative:
+In file included from engine/flatland.cpp:1:0:
+engine/include/flatland.h:41:6: note: ‘flat::quit_flatland’
+ void quit_flatland();
+ ^~~~~~~~~~~~~
+engine/flatland.cpp: In constructor ‘QuitListener::QuitListener()’:
+engine/flatland.cpp:73:9: error: ‘addFilter’ was not declared in this scope
+ addFilter("quit");
+ ^~~~~~~~~
+engine/flatland.cpp:74:9: error: ‘core’ was not declared in this scope
+ core->connect(this);
+ ^~~~
+engine/flatland.cpp:74:9: note: suggested alternative:
+In file included from engine/flatland.cpp:1:0:
+engine/include/flatland.h:43:11: note: ‘flat::core’
+ namespace core {
+ ^~~~
+engine/flatland.cpp: At global scope:
+engine/flatland.cpp:78:34: error: ‘gameloop’ has not been declared
+ int init_flatland(FlatWindow* w, gameloop loop, const flat_status& s, float _fps)
+ ^~~~~~~~
+engine/flatland.cpp:78:55: error: ‘flat_status’ does not name a type; did you mean ‘window_status’?
+ int init_flatland(FlatWindow* w, gameloop loop, const flat_status& s, float _fps)
+ ^~~~~~~~~~~
+ window_status
+engine/flatland.cpp: In function ‘int init_flatland(FlatWindow*, int, const int&, float)’:
+engine/flatland.cpp:84:5: error: ‘core’ was not declared in this scope
+ core = new SignalChannel("core");
+ ^~~~
+engine/flatland.cpp:84:5: note: suggested alternative:
+In file included from engine/flatland.cpp:1:0:
+engine/include/flatland.h:43:11: note: ‘flat::core’
+ namespace core {
+ ^~~~
+engine/flatland.cpp:84:16: error: expected type-specifier before ‘SignalChannel’
+ core = new SignalChannel("core");
+ ^~~~~~~~~~~~~
+engine/flatland.cpp:92:5: error: ‘loop_function’ was not declared in this scope
+ loop_function = loop;
+ ^~~~~~~~~~~~~
+engine/flatland.cpp:92:5: note: suggested alternative: ‘SDL_LoadFunction’
+ loop_function = loop;
+ ^~~~~~~~~~~~~
+ SDL_LoadFunction
+engine/flatland.cpp:93:5: error: ‘status’ was not declared in this scope
+ status = s;
+ ^~~~~~
+engine/flatland.cpp:93:5: note: suggested alternative: ‘static’
+ status = s;
+ ^~~~~~
+ static
+engine/flatland.cpp:135:29: error: incomplete type ‘task_s’ used in nested name specifier
+ task_s::executePreProcess();
+ ^~~~~~~~~~~~~~~~~
+engine/flatland.cpp:157:29: error: incomplete type ‘task_s’ used in nested name specifier
+ task_s::executePostProcess();
+ ^~~~~~~~~~~~~~~~~~
+engine/flatland.cpp:170:17: error: ‘quit_flatland’ was not declared in this scope
+ quit_flatland();
+ ^~~~~~~~~~~~~
+engine/flatland.cpp:170:17: note: suggested alternative:
+In file included from engine/flatland.cpp:1:0:
+engine/include/flatland.h:41:6: note: ‘flat::quit_flatland’
+ void quit_flatland();
+ ^~~~~~~~~~~~~
+engine/flatland.cpp:189:12: error: type ‘<type error>’ argument given to ‘delete’, expected pointer
+ delete core;
+ ^~~~
+engine/flatland.cpp: In function ‘void quit_flatland()’:
+engine/flatland.cpp:201:5: error: ‘status’ was not declared in this scope
+ status.running = 0;
+ ^~~~~~
+engine/flatland.cpp:201:5: note: suggested alternative: ‘static’
+ status.running = 0;
+ ^~~~~~
+ static
+engine/flatland.cpp: At global scope:
+engine/flatland.cpp:205:1: error: ‘flat_status’ does not name a type; did you mean ‘window_status’?
+ flat_status flatland_status()
+ ^~~~~~~~~~~
+ window_status
+engine/flatland.cpp:210:1: error: ‘SignalChannel’ does not name a type
+ SignalChannel * getCoreChannel()
+ ^~~~~~~~~~~~~
+ninja: build stopped: subcommand failed.