5 / 5 / 0
Регистрация: 16.05.2012
Сообщений: 178
|
||||||
1 | ||||||
Манипулятор std::endl21.02.2018, 09:44. Показов 1745. Ответов 8
Метки нет (Все метки)
Добрый день!
Манипулятор std::endl - это некая глобальная функция, но почему она пишется без скобок и без параметров? Пример:
0
|
21.02.2018, 09:44 | |
Ответы с готовыми решениями:
8
Какого типа std::endl ? Как сделать так, чтобы функция могла принимать endl в качестве аргумента? Символ '\n' и манипулятор endl Ошибка в std::cout<<std::endl #include <listream>. Std. Endl |
шКодер самоучка
|
|
21.02.2018, 09:52 | 2 |
Не по теме: Сам было ковырял, что же такое Для std::basic_ostream есть перегрузка operator<<(10-12 по ссылке), принимающая "функторы"(указатели на функции либо функциональные объекты) в качестве аргумента. Собственно std::endl является таким "функтором"
0
|
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
21.02.2018, 11:14 | 3 |
0
|
5 / 5 / 0
Регистрация: 16.05.2012
Сообщений: 178
|
||||||
21.02.2018, 12:46 [ТС] | 4 | |||||
0
|
Вездепух
12793 / 6670 / 1795
Регистрация: 18.10.2014
Сообщений: 16,889
|
|
21.02.2018, 12:51 | 5 |
Имя обычной функции ("без скобок и параметров") - это вполне легальное выражение в языке С++ (как впрочем и в языке С). Ничего необычного в нем нет. В таком контексте оно имеет тип "указатель на функцию". Именно указатель на функцию нам тут и нужен.
0
|
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||
21.02.2018, 14:05 | 6 | ||||||||||
ответ не верный.
Код
is reference? 1 зато можно так:
0
|
Неэпический
|
|||||||||||
21.02.2018, 16:11 | 7 | ||||||||||
fn в любом случае ссылка.
Разве не просто тип "функция возвращающая что-то, принимающая что-то", который потом преобразуется к указателю/ссылке? Т.е. дял примера выше можно добавить:
0
|
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
21.02.2018, 18:07 | 8 |
0
|
Вездепух
12793 / 6670 / 1795
Регистрация: 18.10.2014
Сообщений: 16,889
|
|
21.02.2018, 18:37 | 9 |
Мимо кассы. Я специально указал, что речь идет именно об этом конкретном контексте.
Я специально указал, что речь идет именно о поведении выражения в данном контексте, чтобы не разворачивать полную спецификацию неявной конверсии. Однако ошибка в моем ответе есть. std::endl - это еще не функция, а лишь шаблон функции. И песня тут начинается с разрешения перегрузки и свойств operator << ...
0
|
21.02.2018, 18:37 | |
21.02.2018, 18:37 | |
Помогаю со студенческими работами здесь
9
std::endl; и std::cout"/n"; - одно и то же? Показать на примере, как использовать манипулятор std::ws класса istream Чем отличается "\n" от std::endl? Есть ли в std, или где-нибудь ещё, константа для пустой строки (""), как endl (\n) для символа переноса? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |