Я не знаю ни одного.
std::endl
- это функция, которая принимает поток и возвращает поток:
ostream& endl ( ostream& os );
Когда вы применяете его к std::cout
,он просто сразу применяет функцию.
С другой стороны, std::basic_ostream
имеет перегрузку operator<<
с сигнатурой:
template <typename C, typename T>
basic_ostream<C,T>& operator<<(basic_ostream<C,T>& (*pf)(basic_ostream<C,T>&));
, которая также сразу применяет функцию.
Таким образом, технически нет никакой разницы, хотя stream std::cout << std::endl
более идиоматичен.Вполне возможно, что бот-судья упрощен и не осознает этого.