That is the output function for (for example)
cout << "something";
std::operator<< is the name of the function. It takes a std::basic_ostream<char, std::char_traits<char>>& argument - in other words, std::ostream The second argument is a char const *, in other words, a classic C style string that isn't supposoed to change.
Since operator<< also returns a std::ostream&, this is encoded before the name
It's "complicated" because it's easier to define one, templated, basic_ostream since there are various types of streams, such as owstream that takes "wide chars", it's useful to have a templated basic_ostream that can be instantiated to form a std::ostream, than to have to implement several different, essentially the same, stream classes.