How Do I Invoke a Member Function Pointer in C++?
	
		Via std::invoke: (since C++17)
		
			#include <functional>
			std::invoke(memberFunctionPtr, myObject, parameters);
		
	 
	
		On an object:
		
			(myObject.*memberFunctionPtr)(parameters);
		
	 
	
		On a pointer to an object:
		
			(myObjectPtr->*memberFunctionPtr)(parameters);
		
	 
	
	
	How Do I Declare a Member Function Pointer in C++?
	
		Ideally, use a type alias: (since C++11)
		
				using typeName = returnType (className::*)(parameterTypes);
		
	 
	
		...or a typedef:
		
				typedef returnType (className::*typeName)(parameterTypes);
		
	 
	
	...and then use it like a regular type:
	
		As a variable:
		
			typeName variableName = &className::function_name;
		
	 
	
		As an array:
		
			typeName arrayName[] = { &className::function_name0, ... };
		
	 
	
		As a parameter to a function:
		
			int my_function(typeName parameterName);
		
	 
	
		As a return value from a function:
		
			typeName my_function(int, ...);
		
	 
	
	
	What About The Verbose Syntax?
	Please reconsider, but if you must...
	
		As a variable:
		
			returnType (className::*variableName)(parameterTypes) = &className::function_name;
		
	 
	
		As an array:
		
			returnType (className::*arrayName[])(parameterTypes) = { &className::function_name0, ... };
		
	 
	
		As a parameter to a function:
		
			int my_function(returnType (className::*parameterName)(parameterTypes));
		
	 
	
		As a return value from a function: (with trailing return types, since C++11)
		
			auto my_function(int, ...) -> auto (className::*)(parameterTypes) -> returnType;
		
	 
	
		As a return value from a function: (without trailing return types, or prior to C++11)
		
			returnType (className::*my_function(int, ...))(parameterTypes);
		
	 
	
		This site is not intended to be an exhaustive list of all possible uses of pointers to member functions.
		It is 
highly recommended to use a 
type alias or 
typedef for the sake of readability.
		Like the site, but wish it had a spicier URL? 
https://fuckingmemberfunctionpointers.com might be more your speed.