Ticket #5564: lexical_cast.diff

File lexical_cast.diff, 4.7 KB (added by Bolotov Ilya, Mishakov Daniil <daniil987@…>, 11 years ago)

Patch for the trunk version

Line 
1250,256c250,285
2< // No specializations for:
3< // lcast_src_length<char, signed char>
4< // lcast_src_length<char, unsigned char>
5< // lcast_src_length<char, signed char*>
6< // lcast_src_length<char, unsigned char*>
7< // lcast_src_length<char, signed char const*>
8< // lcast_src_length<char, unsigned char const*>
9---
10> template<>
11> struct lcast_src_length<char, signed char>
12> {
13> BOOST_STATIC_CONSTANT(std::size_t, value = 1);
14> static void check_coverage() {}
15> };
16> template<>
17> struct lcast_src_length<char, unsigned char>
18> {
19> BOOST_STATIC_CONSTANT(std::size_t, value = 1);
20> static void check_coverage() {}
21> };
22> template<>
23> struct lcast_src_length<char, signed char*>
24> {
25> BOOST_STATIC_CONSTANT(std::size_t, value = 1);
26> static void check_coverage() {}
27> };
28> template<>
29> struct lcast_src_length<char, unsigned char*>
30> {
31> BOOST_STATIC_CONSTANT(std::size_t, value = 1);
32> static void check_coverage() {}
33> };
34> template<>
35> struct lcast_src_length<char, signed char const*>
36> {
37> BOOST_STATIC_CONSTANT(std::size_t, value = 1);
38> static void check_coverage() {}
39> };
40> template<>
41> struct lcast_src_length<char, unsigned char const*>
42> {
43> BOOST_STATIC_CONSTANT(std::size_t, value = 1);
44> static void check_coverage() {}
45> };
46823a853,854
47> bool operator<<(unsigned char);
48> bool operator<<(signed char);
49826a858,859
50> bool operator<<(unsigned char const*);
51> bool operator<<(signed char const*);
521052a1086,1087
53> bool operator>>(unsigned char&);
54> bool operator>>(signed char&);
551093a1129,1156
56> template<typename CharT, class Base, class Traits>
57> inline bool lexical_stream_limited_src<CharT,Base,Traits>::operator<<(
58> unsigned char ch)
59> {
60> return ((*this) << static_cast<char>(ch));
61> }
62>
63> template<typename CharT, class Base, class Traits>
64> inline bool lexical_stream_limited_src<CharT,Base,Traits>::operator<<(
65> signed char ch)
66> {
67> return ((*this) << static_cast<char>(ch));
68> }
69>
70> template<typename CharT, class Base, class Traits>
71> inline bool lexical_stream_limited_src<CharT,Base,Traits>::operator<<(
72> unsigned char const* ch)
73> {
74> return ((*this) << reinterpret_cast<char const*>(ch));
75> }
76>
77> template<typename CharT, class Base, class Traits>
78> inline bool lexical_stream_limited_src<CharT,Base,Traits>::operator<<(
79> signed char const* ch)
80> {
81> return ((*this) << reinterpret_cast<char const*>(ch));
82> }
83>
841258a1322,1349
85> template<typename CharT, class Base, class Traits>
86> inline bool lexical_stream_limited_src<CharT,Base,Traits>::operator>>(
87> unsigned char& output)
88> {
89> BOOST_STATIC_ASSERT( sizeof(CharT) == sizeof(unsigned char) );
90> bool const ok = (finish - start == 1);
91> if(ok) {
92> CharT out;
93> Traits::assign(out, *start);
94> output = static_cast<signed char>(out);
95> }
96> return ok;
97> }
98>
99> template<typename CharT, class Base, class Traits>
100> inline bool lexical_stream_limited_src<CharT,Base,Traits>::operator>>(
101> signed char& output)
102> {
103> BOOST_STATIC_ASSERT( sizeof(CharT) == sizeof(signed char) );
104> bool const ok = (finish - start == 1);
105> if(ok) {
106> CharT out;
107> Traits::assign(out, *start);
108> output = static_cast<signed char>(out);
109> }
110> return ok;
111> }
112>
1131316,1320c1407,1412
114< ::boost::type_traits::ice_or<
115< ::boost::type_traits::ice_not< is_integral<Target>::value >::value,
116< is_same<Target, signed char>::value,
117< is_same<Target, unsigned char>::value
118< >::value
119---
120> // ::boost::type_traits::ice_or<
121> ::boost::type_traits::ice_not< is_integral<Target>::value >::value
122> // ,
123> // is_same<Target, signed char>::value,
124> // is_same<Target, unsigned char>::value
125> // >::value