template <typename T>
struct type_name_is {};

template <typename T>
void type_name_error(const T&)
{
    // will error with type name:
    type_name_is<T>::showing_type_name();
}

int main()
{
    type_name_error(42u + -43);
}
