I came across the following code:

```
template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) {
   return a+b;
}

```

There is one thing I cannot understand:

Where could I find out what the arrow operator (`->`) means in the function heading?

I guess purely logically, that the `->` operator determines a type, that `auto` will be deduced to, but I want to get this straight. I can't find any information.