Give better error reporting when an Invoke parameter is wrong
When one of the parameters to DispatcherBase::Invoke is incorrect, you get an error in a strange place. It is deep in a call stack using some heavily templated types rather than where the Invoke is actually called. Formerly, the code was structured to give a very obfuscated error message. Try to make this easier on users by first adding helpful hints in the code around where the error is to explain why the error occured and helpful advice on how to track down the problem. Second, reconfigure the static_assert so that the compiler gives a readable error message. Third, add some auxiliary error messages that provide additional information about the types and classes involved in the error.
Showing with 60 additions and 24 deletions