switching function pointers to std::function, use std::bind() now which will allow for member function callbacks.  demo updated to use std::bind