Как заставить увидет перегруженный оператор
От: alexsy Россия  
Дата: 29.07.08 06:03
Оценка:
Вопрос в принципе уже здесь вешал .. но либо я не так задал или я чтото не понял в ваших отверах.. И так код

typedef std::map< char, char > CMapChar;
typedef CMapChar::value_type CMapPair;

#ifdef VAR_1
template< typename Map >
std::ostream& operator<<( std::ostream& f_OutStream,
        const typename Map::valie_type& f_Data ){
    f_OutStream << f_Data.first << " - " << f_Data.second;
    return f_OutStream;
}
#else
template< typename Map, typename _CharT, typename _Traits >
    std::basic_ostream< _CharT, _Traits >&
    operator<<( std::basic_ostream< _CharT, _Traits >& f_OutStream,
            const typename Map::valie_type& f_Data ){
    f_OutStream << f_Data.first << " - " << f_Data.second;
    return f_OutStream;
}
#endif
    CMapChar MapChar;
    for( char c = 'A'; c <= 'Z'; ++c )
        MapChar[ c ] = c - 'A' + 'a';
    std::copy( MapChar.begin(), MapChar.end(),
            std::ostream_iterator< CMapChar::value_type >( std::cout, " " ) );

Не вариант 1 не вариант 2 не расматривается при компиляции std::copy
по информации об ошибках видно что хочет использовать только операторы члены класа.
template<typename _CharT, typename _Traits>
class basic_ostream
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.