- code (on MSVC) was asserting due to trying to dereference invalid
pointers (dereferencing the end iterator, even if only to get its
address!).
- when a Function_Params is constructed with an empty vector, you
can't return the address of the vec.front() -- instead we use
nullptr for the m_begin and m_end pointers.