Skip to content

Commit 739ffd2

Browse files
committed
Resolve some warnings from MSVC
1 parent 4f63075 commit 739ffd2

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

include/tao/json/events/ubjson/grammar.hpp

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,17 @@ namespace tao
8989
return ( !in.empty() ) && match_impl( in, consumer );
9090
}
9191

92+
template< typename Result, typename Number, typename Read, typename Input >
93+
static Result read_number( Input& in )
94+
{
95+
if( in.size( sizeof( Number ) ) > sizeof( Number ) ) {
96+
const Result result = static_cast< Result >( static_cast< Number >( json::internal::be_to_h< Read >( in.current() + 1 ) ) );
97+
in.bump_in_this_line( 1 + sizeof( Number ) );
98+
return result;
99+
}
100+
throw json_pegtl::parse_error( "unexpected end of ubjson input", in );
101+
}
102+
92103
template< typename Input, typename Consumer >
93104
static bool match_impl( Input& in, Consumer& consumer )
94105
{
@@ -109,25 +120,25 @@ namespace tao
109120
in.bump_in_this_line();
110121
return true;
111122
case 'i':
112-
consumer.number( read_number< std::int64_t, std::int8_t >( in ) );
123+
consumer.number( read_number< std::int64_t, std::int8_t, std::uint8_t >( in ) );
113124
return true;
114125
case 'U':
115-
consumer.number( read_number< std::uint64_t, std::uint8_t >( in ) );
126+
consumer.number( read_number< std::uint64_t, std::uint8_t, std::uint8_t >( in ) );
116127
return true;
117128
case 'I':
118-
consumer.number( read_number< std::int64_t, std::int16_t >( in ) );
129+
consumer.number( read_number< std::int64_t, std::int16_t, std::uint16_t >( in ) );
119130
return true;
120131
case 'l':
121-
consumer.number( read_number< std::int64_t, std::int32_t >( in ) );
132+
consumer.number( read_number< std::int64_t, std::int32_t, std::uint32_t >( in ) );
122133
return true;
123134
case 'L':
124-
consumer.number( read_number< std::int64_t, std::int64_t >( in ) );
135+
consumer.number( read_number< std::int64_t, std::int64_t, std::uint64_t >( in ) );
125136
return true;
126137
case 'd':
127-
consumer.number( read_number< double, float >( in ) );
138+
consumer.number( read_number< double, float, float >( in ) );
128139
return true;
129140
case 'D':
130-
consumer.number( read_number< double, double >( in ) );
141+
consumer.number( read_number< double, double, double >( in ) );
131142
return true;
132143
case 'H':
133144
return match_high_precision( in, consumer );
@@ -159,19 +170,19 @@ namespace tao
159170
}
160171
switch( in.peek_char() ) {
161172
case 'i':
162-
return read_number< std::int64_t, std::int8_t >( in );
173+
return read_number< std::int64_t, std::int8_t, std::uint8_t >( in );
163174
case 'U':
164-
return read_number< std::int64_t, std::uint8_t >( in );
175+
return read_number< std::int64_t, std::uint8_t, std::uint8_t >( in );
165176
case 'I':
166-
return read_number< std::int64_t, std::int16_t >( in );
177+
return read_number< std::int64_t, std::int16_t, std::uint16_t >( in );
167178
case 'l':
168-
return read_number< std::int64_t, std::int32_t >( in );
179+
return read_number< std::int64_t, std::int32_t, std::uint32_t >( in );
169180
case 'L':
170-
return read_number< std::int64_t, std::int64_t >( in );
181+
return read_number< std::int64_t, std::int64_t, std::uint64_t >( in );
171182
case 'd':
172-
return read_number< std::int64_t, float >( in );
183+
return read_number< std::int64_t, float, float >( in );
173184
case 'D':
174-
return read_number< std::int64_t, double >( in );
185+
return read_number< std::int64_t, double, double >( in );
175186
}
176187
throw json_pegtl::parse_error( "unexpected ubjson high precision number size marker", in );
177188
}
@@ -191,17 +202,6 @@ namespace tao
191202
return true;
192203
}
193204

194-
template< typename Result, typename Number, typename Input >
195-
static Result read_number( Input& in )
196-
{
197-
if( in.size( sizeof( Number ) ) > sizeof( Number ) ) {
198-
const Result result = static_cast< Result >( json::internal::be_to_h< Number >( in.current() + 1 ) );
199-
in.bump_in_this_line( 1 + sizeof( Number ) );
200-
return result;
201-
}
202-
throw json_pegtl::parse_error( "unexpected end of ubjson input", in );
203-
}
204-
205205
template< typename Result, typename Input >
206206
static Result read_container( Input& in, const std::size_t size )
207207
{
@@ -223,11 +223,11 @@ namespace tao
223223
}
224224
switch( in.peek_byte() ) {
225225
case 0xd9:
226-
return read_container< tao::string_view >( in, read_number< std::size_t, std::uint8_t >( in ) );
226+
return read_container< tao::string_view >( in, read_number< std::size_t, std::uint8_t, std::uint8_t >( in ) );
227227
case 0xda:
228-
return read_container< tao::string_view >( in, read_number< std::size_t, std::uint16_t >( in ) );
228+
return read_container< tao::string_view >( in, read_number< std::size_t, std::uint16_t, std::uint16_t >( in ) );
229229
case 0xdb:
230-
return read_container< tao::string_view >( in, read_number< std::size_t, std::uint32_t >( in ) );
230+
return read_container< tao::string_view >( in, read_number< std::size_t, std::uint32_t, std::uint32_t >( in ) );
231231
}
232232
throw json_pegtl::parse_error( "unexpected key type", in );
233233
}

0 commit comments

Comments
 (0)