![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
marcusmae |
|
||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
Всем привет,
Множество определённых мною перегрузок оператора <<
не охватывает возможности принятия std::endl / std::beginl в качестве аргумента. Пробовал подсмотреть в стандартные исходники :
с подстановкой wchar_t не катит. Как же всё-таки его правильно записать?.. Это сообщение отредактировал(а) marcusmae - 2.4.2008, 23:23 -------------------- ἀπὸ μηχανῆς θεός |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
вопрос, а зачем тебе это вообще делать? чем тебя стандартное поведение не устраивает? Ты что, свой ostream пишешь?
Это сообщение отредактировал(а) bsa - 3.4.2008, 00:07 |
|||
|
||||
marcusmae |
|
||||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
bsa, я не претендую на универсальность. Достаточно перехватить стандартный вывод лишь в части пяти типов :
Это вроде бы удалось. Единственная проблема - если справа сразу endl стоит :
Это приводит к ошибке (MVC++ 9.0) :
Как бы это обойти?.. Или я вообще ничего не понимаю? ![]() Это сообщение отредактировал(а) marcusmae - 3.4.2008, 00:02 -------------------- ἀπὸ μηχανῆς θεός |
||||||
|
|||||||
bsa |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Кстати, стандартные типы лучше передавать по значению, разве что long double, имхо, лучше по ссылке. Ты забыл long double, short int, long int и long long int.
std::endl и прочие - это функции, которые объявлены так:
|
||||||
|
|||||||
marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
круто ![]() Манипуляторы - фиг с ними. Пока, думаю, они не понадобятся. Спасибо! ![]() Добавлено через 2 минуты и 3 секунды Ок, сделал. -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
student0511 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.3.2006 Репутация: нет Всего: нет |
У меня возникла проблема: никак не могу перегрузить операцию << для собственного класса строк Tstring.
Вот описание класса: как видно operator<< является дружественной функцией, но если в теле описания данной функции обратиться к полю аргумента из private, то вылетает ошибка: error C2248: 'str' : cannot access private member declared in class 'Tstring'.
Компилятор: Visual C++ 6 1994 - 1998 Microsoft Corporation - может дело в нём или надо что-то прописать? Это сообщение отредактировал(а) student0511 - 22.4.2008, 01:29 |
||||
|
|||||
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: нет Всего: 3 |
У меня возникала анологичная ошибка именно в MS VC++ 6. Как решал не помню, вроде бы переносли в public, но это конечно не правильное решение.
В более новых компиляторах такой ошибки не возникало. -------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
странная какая-то ошибка... попробовал в VC++ 6 SP5
все собралось и работает |
|||
|
||||
student0511 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.3.2006 Репутация: нет Всего: нет |
Да работает. Когда прототип пишешь функции до описания класса, то работает. Очень даже странно.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |