FYI, if you ever get into creating your own thunks and calling back into private class object functions, I'd recommend Paul Caton's logic of finding private methods from the end of the class. This allows you to place those functions at end of the class and grouped together as needed. Then whether you add/remove class methods over time, you don't have to worry about its ordinal position within the class changing because they'll always be at the end, even if you add a new public variable in the declarations section. That assumption is that you don't add new stuff at the bottom. I typically add commented banners to remind myself, something like: DON'T ADD ANY CODE BELOW THIS POINT.

Why did Paul focus on private methods? Simply because you don't want to make those callbacks public/friend where some user could easily call them and likely crash your project.