Вопрос в принципе уже здесь вешал .. но либо я не так задал или я чтото не понял в ваших отверах.. И так код
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