Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > std::basic_ostream |
Автор: dix75 17.6.2008, 20:07 | ||
Всем Доброго вечера! У меня вопрос такой нашел я одну функцию в книге (Рэй Лишнер "C++ справочник"), а примера использования функции нет Функция копирования файла
Но как пользоватья ей я не знаю Может кто-нить напишет как ей пользоваться |
Автор: JackYF 17.6.2008, 20:15 | ||
здесь должен быть istream, вестимо. Пример:
|
Автор: Mephisto 17.6.2008, 20:19 | ||
Не пойму почему basic_ostream описан как in. Но если так как я написал, то понятно :
|
Автор: dix75 17.6.2008, 20:23 |
Mephisto, Прошу прощения действительно basic_istream |
Автор: dix75 17.6.2008, 20:42 | ||
Ошибка :(
|
Автор: vinter 17.6.2008, 20:53 |
бедовая -фия, нафига она тебе нужна, лучше напрямую функционал ею используемый пользовать ![]() она у тебя объявлена\определена? я думаю должно быть traits, а уж никак не trains ![]() |
Автор: dix75 17.6.2008, 21:03 | ||
исправил на traits результат Не помогло Пытаюсь работать так
|
Автор: baldina 17.6.2008, 21:16 |
у тебя std::basic_ostream<charT,trains>&out не согласуется с ofstream который есть basic_ofstream<char, char_traits<char> > и т.д. Добавлено через 5 минут и 7 секунд не, ошибся, согласуется все. Добавлено через 6 минут и 11 секунд у тебя просто шаблон TCopyList::copy видимо в cpp файле, перенеси его в .h и все |
Автор: dix75 17.6.2008, 21:29 | ||
baldina, размещаю в секции public другая ошибка ![]()
|
Автор: vinter 17.6.2008, 21:44 |
а iostream подключен в .h? std? |
Автор: andrew_121 17.6.2008, 21:45 | ||
По моему - rdbuf |
Автор: baldina 17.6.2008, 21:47 |
vinter, ![]() dix75, проверяй iostream в .h Добавлено через 51 секунду да, rdbuf конечно |
Автор: dix75 17.6.2008, 21:52 |
Прикольно действительно rdbuf ![]() Непонятно почему в cpp нельзя? А как мона дописать файл? |
Автор: andrew_121 17.6.2008, 22:08 |
Путем Чтения и Записи ![]() |
Автор: dix75 17.6.2008, 22:15 | ||
andrew_121, ![]() вот так я думаю ![]()
Добавлено через 2 минуты и 16 секунд Меня мучает вопрос почему нельзя писать реализацию функции в cpp? |
Автор: baldina 17.6.2008, 22:24 |
шаблон - это не готовый код класса или функции, это инструкция компилятору, как их создавать. поэтому шаблон должен быть у компилятора "под рукой". Есть способ принудительной генерации кода по шаблону для заданных типов, но в данном случае этого не надо. Пусть тебя .h не смущает, посмотри тексты STL - там все во включаемых файлах. Наконец, есть такая штука, как экспорт шаблонов, но с поддержкой этой фичи со стороны компиляторов пока плоховато. |
Автор: vinter 17.6.2008, 22:32 |
можно, и нужно в смысле, ты думаешь улыбаясь? |
Автор: dix75 17.6.2008, 22:33 |
причем постоянно ![]() в cpp выдает ошибку описанную ранее |
Автор: vinter 17.6.2008, 23:03 |
ну это я имел в виду про обычные ф-ии, а у тебя объявление шаблона в .h а реализации в cpp, да? Если так, то с шаблонами так нельзя. |
Автор: dix75 17.6.2008, 23:12 |
спасибо |
Автор: bsa 17.6.2008, 23:12 | ||
По крайней мере до тех пор, пока компиляторы не поддержат extern template... |
Автор: vinter 17.6.2008, 23:33 | ||
export если быть точным ![]() |
Автор: bsa 17.6.2008, 23:35 |
vinter, точно. ![]() |
Автор: xvr 18.6.2008, 11:35 | ||||
Эх, sun'овский C++ компилятор поддерживал это еще более 10 лет назад (правда без слова export, не было его еще тогда ![]() |
Автор: Mephisto 18.6.2008, 14:13 |
я, в своем примере rdbuf и написал ![]() |