STLport & _Smanip
От: ssi Россия  
Дата: 02.01.03 20:59
Оценка:
Написал манипулятор для VC STL:

inline void setpf(std::ios_base& iostr, int precision) {
    iostr.precision(precision); iostr.setf(std::ios_base::fixed); }

inline std::_Smanip<int> setp(int precision) {
    return std::_Smanip<int>(&setpf, precision); }


Необходимо, чтобы этот манипулятор работал и из под STLport.
Проблема в том, что в STLport нет _Smanip, там есть _Ios_Manip_1, однако простая замена не помогает. Компилятор (CL ver. 12.00.8804) выдает следующую ошибку:

error C2665: '_Ios_Manip_1<int>::_Ios_Manip_1<int>' : none of the 2 overloads can convert parameter 1 from type 'void (__cdecl *)(class _STL::ios_base &,int)'

Можно сделать по аналогии:

inline std::_Ios_Manip_1<int> setp(int precision) {
    return std::_Ios_Manip_1<int>(std::ios_base::precision, precision);
}


Но мне еще необходимо при этом установить флаг fixed. Как это сделать? Помогите разобраться.
Знающие не говорят, говорящие не знают. Лао Цзы
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.