In order to successfully sue for emotional damages, you have to prove quantifiable damages. Usually that means if you ended up having to get therapy to deal with it, you can sue for the cost of the therapy.
template <typename A, typename B>
auto multiply(A a, B b) -> decltype(a * b) {
return a * b;
}
Its easier for the compiler to parse everything if `decltype(a * b) occurs _after_ the definition of `a` and `b`. Once this pattern was added and people started using it for that purpose, people also started using the pattern for all functions for consistency.