I have two questions:
1) Why are pointers to inline functions allowed in C++? I have read that the code of inline functions just gets copied to the function call stateme
Inline functions are not always inlined. It just signals that the programmer would like this function to be inlined. The compiler is allowed to inline any function, regarless of whether inline keyword was used or not.
If the address of function is used, the function is most likely not inlined in the final executable, at least in GCC:
When a function is both inline and static, if all calls to the function are integrated into the caller, and the function's address is never used, then the function's own assembler code is never referenced.
GCC documentation