Вопрос в значительной степени находится в названии. Согласно С++ Reference, std::endl
- фактически функция. Рассматривая его объявление в <iostream>
, это можно проверить.
Однако, когда вы используете std::endl
, вы не используете std::endl()
. Вместо этого вы используете:
std::cout << "Foo" << std::endl;
Фактически, если вы используете std::endl()
, компилятор требует больше параметров, как указано в приведенной выше ссылке.
Кто-нибудь хотел бы объяснить это? Что особенного в std::endl
? Можем ли мы реализовать функции, не требующие каких-либо скобок при вызове?