I have nothing particularly against references, especially since they look nicer with function pointers. But, you can do everything with pointers alone and if you open the gates of hell.. erm I mean C++ then there will be countless questions about lvalue references, rvalue references whether it's ok to use T&& whether it's ok to use std::forward, std::move etc... It's just simpler to stick to pointers.