Maybe make this `P* const`?  Ditto for the callback.  Makes it easy for a maintainer to see that the value never changes after instantiation.  (Or turn it into a class with private members and only getters, amounts to the same thing.)