Compiling TaskScheduler.h using the xtensa-lx106-elf-g++ compiler (esp8266) fails. Apparently, it can not match the declaration of the constructor with its implementation because of mixing boolean and bool for parameter aEnable.
public:
Task(unsigned long aInterval=0, long aIterations=0, void (*aCallback)()=NULL, Scheduler* aScheduler=NULL, boolean aEnable=false, bool (*aOnEnable)()=NULL, void (*aOnDisable)()=NULL);
needs to become
public:
Task(unsigned long aInterval=0, long aIterations=0, void (*aCallback)()=NULL, Scheduler* aScheduler=NULL, bool aEnable=false, bool (*aOnEnable)()=NULL, void (*aOnDisable)()=NULL);