It's just a programming font ligature. If you copy and paste it you'll see the actual characters e.g.
auto main() -> int {
(It's also modern C++ trailing return type.) auto main() -> int {
(It's also modern C++ trailing return type.) int main() { 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.