перегрузка оператора << (std::ofstream&, const std::string&)
От: boris_r_v  
Дата: 05.04.12 09:25
Оценка:
Друзья как видно из заголовка, этот оператор уже определен в STL.
Проблема состоит в том, что мне нужна своя реализация его, чтобы записать строку в файл, еще так эже надо писать unsigned long и читать их из файла.
В общем виде это во так выглядит
class vd_data
{
public:
vd_data();
~vd_vata();
std::string _str;
unsigned long _sl;
};

std::ofstream& operator << (std::ofstream&, const vd_data& );
std::ifstream& operator >> (std::ifstream&, vd_data& );

std::ofstream& operator << (std::ofstream&, const std::string& );
std::ifstream& operator >> (std::ifstream&, std::string& );
std::ofstream& operator << (std::ofstream&, const unsigned long& );
std::ifstream& operator >> (std::ifstream&, unsigned long& );

реализацию приводить не буду, пока.

это код успешно компилица, а при запуске имею такую ошибку
... undefined symbol: _ZN3AmtlsERSt14basic_ofstreamIcSt11char_traitsIcEERKm

Если я правильно понял то при запуске случилось что не понятное, символ char_traits не был найден, но какое отношение он имеет я не понял.
Я конечно сделал без последних 4-х операторов заменил их методами

void put( std::ofstream&, const std::string& );
void get( std::ifstream&, std::string& );
void put( std::ofstream&, const unsigned long& );
void get( std::ifstream&, unsigned long& );

но чую — это не кошерно.
Вот посему прошу совета гуру — как заставить мои переопреденные операторы работать, или пояснения почему так не получится сделать.
сдф
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.