Прога под unicode и mbsc.
соответственно используются все типы/классы/функции в универсальном виде. TCHAR, wcslen.
как быть со string. есть string, есть wstring, а как насчет универсального, чтобы руками самому не определять?
Здравствуйте, JakeS, Вы писали:
JS>Прога под unicode и mbsc. JS>соответственно используются все типы/классы/функции в универсальном виде. TCHAR, wcslen. JS>как быть со string. есть string, есть wstring, а как насчет универсального, чтобы руками самому не определять?
Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, JakeS, Вы писали:
JS>>Прога под unicode и mbsc. JS>>соответственно используются все типы/классы/функции в универсальном виде. TCHAR, wcslen. JS>>как быть со string. есть string, есть wstring, а как насчет универсального, чтобы руками самому не определять?
K>
K>typedef std::basic_string<TCHAR> tstring;
K>
Это понятно. Просто интересно, всяких универс. функция наплодили много, неужели string лень было? =)
Здраствуйте, JakeS, Вы писали:
> Прога под unicode и mbsc. > соответственно используются все типы/классы/функции в универсальном > виде. TCHAR, wcslen. > как быть со string. есть string, есть wstring, а как насчет > универсального, чтобы руками самому не определять?
Можно сделать типа этого
Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, JakeS, Вы писали:
JS>>Это понятно. Просто интересно, всяких универс. функция наплодили много, неужели string лень было? =)
K>ни понил K>а какие тебя функции интерисуют?
дело то в чем. прога было под mbsc only. сейчас перевожу. вот и получается что нужно таскать по всем файлам этот тайпдеф, либо инклюд с доп. хидером с этим тайпдефом.
Вот и возникает логичный вопрос, почему обо мне никто не позаботился и не включил данную возможность сразу в <string>
Здравствуйте, JakeS, Вы писали:
JS>дело то в чем. прога было под mbsc only. сейчас перевожу. вот и получается что нужно таскать по всем файлам этот тайпдеф, либо инклюд с доп. хидером с этим тайпдефом. JS>Вот и возникает логичный вопрос, почему обо мне никто не позаботился и не включил данную возможность сразу в <string>
Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, JakeS, Вы писали:
JS>>а как бы теперь попроще boost::lexical_cast обучить типу tstring
K>если не определять перед K>
C:\program files\boost\include\boost-1_31\boost\lexical_cast.hpp(150) : error C2679: binary '>>' : no operator found which takes
a right-hand operand of type 'std::tstring' (or there is no acceptable conversion)
C:\program files\boost\include\boost-1_31\boost\lexical_cast.hpp(189) : see reference to function template instantiation
'bool boost::detail::lexical_stream<Target,Source>::operator >><Target>(InputStreamable &)' being compiled
with
[
Target=std::tstring,
Source=__int64,
InputStreamable=std::tstring
]
D:\projects\aipsin\general libraries\usm\sectionsmasks.cpp(188) : see reference to function template instantiation
'Target boost::lexical_cast<std::tstring,__int64>(Source)' being compiled
with
[
Target=std::tstring,
Source=__int64
]
Здравствуйте, JakeS, Вы писали:
JS>не тут то было...
JS>C:\program files\boost\include\boost-1_31\boost\lexical_cast.hpp(150) : error C2679: binary '>>' : no operator found which takes JS> a right-hand operand of type 'std::tstring' (or there is no acceptable conversion)
Ну это ты чего то напортачил (особо смущает выделенное жирным)
вот код. который работает
#define _UNICODE
#include <tchar.h>
#include"boost/lexical_cast.hpp"typedef std::basic_string<TCHAR> tstring;
int main()
{
int i = 10;
tstring str = boost::lexical_cast<tstring>(i);
}
Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, JakeS, Вы писали:
JS>>не тут то было...
JS>>C:\program files\boost\include\boost-1_31\boost\lexical_cast.hpp(150) : error C2679: binary '>>' : no operator found which takes JS>> a right-hand operand of type 'std::tstring' (or there is no acceptable conversion)
K>Ну это ты чего то напортачил (особо смущает выделенное жирным)
K>вот код. который работает K>
Здравствуйте, JakeS, Вы писали:
JS>namespace std JS>{ JS>typedef basic_string<TCHAR> tstring; JS>}
нельзя добавлять новые имена в namespace std, делай так:
typedef basic_string<TCHAR> tstring;
JS>но boost::lexicalcast<std::tstring>(__int64) и наоборот не работает.
вот код, который у меня работает
Здравствуйте, JakeS, Вы писали:
JS>по коду бывает std::string JS>чтобы сделать все реплейсом: JS>namespace std JS>{ JS>typedef basic_string<TCHAR> tstring; JS>}
Здравствуйте, JakeS, Вы писали:
JS>Здравствуйте, korzhik, Вы писали:
JS>почему нельзя добавлять в std? физических ограничений нет...
по стандарту нельзя