S4 wrote:
> Здравствуйте, MaximE, Вы писали: > > ME>Я хочу сказать, что количество работы, которую нужно сделать, чтобы ты мог запользовать стрим<int>, намного превышает те блага, которые ты мог бы получить при использовании таких потоков. Мне интересно, какие такие блага тебе дает стрим<int>. > > ME>P.S. Скорее всего тебе еще придется что-то с локалями делать... > > В таком ракурсе конечно никаких, обошелся char'ом. Просто в stl от VC такой проблемы нет и все работало без лишних телодвижений.
Что это значит? Если объявлять иначе чем basic_ofstream<char>, например basic_ofstream<int> то получаю вот такие ошибки:
u:\libs\STLport-5.0-0125\stlport\stl\_fstream.c(232) : error C2039: 'out' : is not a member of '_STL::codecvt<_InternT,_ExternT,_StateT>'
with
[
_InternT=int,
_ExternT=char,
_StateT=_STL::basic_filebuf<int,_STL::char_traits<int>>::_State_type
]
u:\libs\STLport-5.0-0125\stlport\stl\_alloc.h(377) : while compiling class-template member function '_STL::basic_filebuf<_CharT,_Traits>::int_type _STL::basic_filebuf<_CharT,_Traits>::overflow(_STL::basic_filebuf<_CharT,_Traits>::int_type)'
with
[
_CharT=int,
_Traits=_STL::char_traits<int>
]
u:\libs\STLport-5.0-0125\stlport\stl\_fstream.h(637) : see reference to class template instantiation '_STL::basic_filebuf<_CharT,_Traits>' being compiled
with
[
_CharT=int,
_Traits=_STL::char_traits<int>
]
u:\Visual Studio Projects\IT\it.h(50) : see reference to class template instantiation '_STL::basic_ofstream<_CharT>' being compiled
with
[
_CharT=int
]
u:\libs\STLport-5.0-0125\stlport\stl\_fstream.c(347) : error C2039: 'length' : is not a member of '_STL::codecvt<_InternT,_ExternT,_StateT>'
with
[
_InternT=int,
_ExternT=char,
_StateT=_STL::basic_filebuf<int,_STL::char_traits<int>>::_State_type
]
u:\libs\STLport-5.0-0125\stlport\stl\_alloc.h(377) : while compiling class-template member function '_STL::basic_filebuf<_CharT,_Traits>::pos_type _STL::basic_filebuf<_CharT,_Traits>::seekoff(_STL::basic_filebuf<_CharT,_Traits>::off_type,_STL::ios_base::seekdir,_STL::ios_base::openmode)'
with
[
_CharT=int,
_Traits=_STL::char_traits<int>
]
u:\libs\STLport-5.0-0125\stlport\stl\_fstream.c(358) : error C2039: 'in' : is not a member of '_STL::codecvt<_InternT,_ExternT,_StateT>'
with
[
_InternT=int,
_ExternT=char,
_StateT=_STL::basic_filebuf<int,_STL::char_traits<int>>::_State_type
]
S4 wrote:
> Что это значит? Если объявлять иначе чем basic_ofstream<char>, например basic_ofstream<int> то получаю вот такие ошибки:
[]
Это значит, что для того, чтобы работать с файловыми потоками, специализированными типами, отличными от char и wchar_t, тебе нужно специализировать char_traits<>, codecvt<> и, возможно, что-нибудь еще.
Здравствуйте, MaximE, Вы писали:
ME>Это значит, что для того, чтобы работать с файловыми потоками, специализированными типами, отличными от char и wchar_t, тебе нужно специализировать char_traits<>, codecvt<> и, возможно, что-нибудь еще.
А можно поподробнее, где и как этот codecvt специализировать?
S4 wrote:
> ME>Это значит, что для того, чтобы работать с файловыми потоками, специализированными типами, отличными от char и wchar_t, тебе нужно специализировать char_traits<>, codecvt<> и, возможно, что-нибудь еще. > > А можно поподробнее, где и как этот codecvt специализировать?
В поставке STL должен быть реализован хотя бы один наследник codecvt<> — codecvt<char>, но скорее всего ты там найдешь и наследника codecvt<wchar_t> — используй их в качестве примеров.
Вообще, не понятно, зачем тебе нужен basic_filestream<int>.
[]
> Вообще, не понятно, зачем тебе нужен basic_filestream<int>.
Я хочу сказать, что количество работы, которую нужно сделать, чтобы ты мог запользовать стрим<int>, намного превышает те блага, которые ты мог бы получить при использовании таких потоков. Мне интересно, какие такие блага тебе дает стрим<int>.
P.S. Скорее всего тебе еще придется что-то с локалями делать...
Здравствуйте, MaximE, Вы писали:
ME>Я хочу сказать, что количество работы, которую нужно сделать, чтобы ты мог запользовать стрим<int>, намного превышает те блага, которые ты мог бы получить при использовании таких потоков. Мне интересно, какие такие блага тебе дает стрим<int>.
ME>P.S. Скорее всего тебе еще придется что-то с локалями делать...
В таком ракурсе конечно никаких, обошелся char'ом. Просто в stl от VC такой проблемы нет и все работало без лишних телодвижений.