ALib C++ Framework
by
Library Version: 2605 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
substring.cpp
1// Windows.h might bring in max/min macros
2#if defined( max )
3 #undef max
4 #undef min
5#endif
6
7namespace alib { namespace strings {
8
9template<typename TChar>
11 integer idx= 0;
12 result= detail::ParseDecDigits( *this, idx );
13 if( idx > 0 ) {
14 ConsumeChars<NC>( idx );
15 return true;
16 }
17 return false;
18}
19
20template<typename TChar>
21bool TSubstring<TChar>::consumeIntImpl( int64_t& result, TNumberFormat<TChar>* numberFormat ) {
22 if ( numberFormat == nullptr )
24
25 integer idx= 0;
26 result= detail::ParseInt( *this, idx, *numberFormat );
27 if( idx > 0 ) {
28 ConsumeChars<NC>( idx );
29 return true;
30 }
31 return false;
32}
33
34template<typename TChar>
35bool TSubstring<TChar>::consumeDecImpl( uint64_t& result, TNumberFormat<TChar>* numberFormat ) {
36 if ( numberFormat == nullptr )
38
39 integer idx= 0;
40 result= detail::ParseDec( *this, idx, *numberFormat );
41 if( idx > 0 ) {
42 ConsumeChars<NC>( idx );
43 return true;
44 }
45 return false;
46}
47
48template<typename TChar>
49bool TSubstring<TChar>::consumeBinImpl( uint64_t& result, TNumberFormat<TChar>* numberFormat ) {
50 if ( numberFormat == nullptr )
52
53 integer idx= 0;
54 result= detail::ParseBin( *this, idx, *numberFormat );
55 if( idx > 0 ) {
56 ConsumeChars<NC>( idx );
57 return true;
58 }
59 return false;
60}
61
62template<typename TChar>
63bool TSubstring<TChar>::consumeHexImpl( uint64_t& result, TNumberFormat<TChar>* numberFormat ) {
64 if ( numberFormat == nullptr )
66
67 integer idx= 0;
68 result= detail::ParseHex( *this, idx, *numberFormat );
69 if( idx > 0 ) {
70 ConsumeChars<NC>( idx );
71 return true;
72 }
73 return false;
74}
75
76template<typename TChar>
77bool TSubstring<TChar>::consumeOctImpl( uint64_t& result, TNumberFormat<TChar>* numberFormat ) {
78 if ( numberFormat == nullptr )
80
81 integer idx= 0;
82 result= detail::ParseOct( *this, idx, *numberFormat );
83 if( idx > 0 ) {
84 ConsumeChars<NC>( idx );
85 return true;
86 }
87 return false;
88}
89
90template<typename TChar>
92 TNumberFormat<TChar>* numberFormat ) {
93 if ( numberFormat == nullptr )
95
96 integer idx= 0;
97 result= detail::ParseFloat( *this, idx, *numberFormat );
98 if( idx > 0 ) {
99 ConsumeChars<NC>( idx );
100 return true;
101 }
102 return false;
103}
104
105
106template bool TSubstring<nchar>::ConsumeFloat ( double& , TNumberFormat<nchar>* );
107template bool TSubstring<nchar>::consumeDecDigitsImpl( uint64_t& );
108template bool TSubstring<nchar>::consumeIntImpl ( int64_t& , TNumberFormat<nchar>* );
109template bool TSubstring<nchar>::consumeDecImpl ( uint64_t& , TNumberFormat<nchar>* );
110template bool TSubstring<nchar>::consumeBinImpl ( uint64_t& , TNumberFormat<nchar>* );
111template bool TSubstring<nchar>::consumeHexImpl ( uint64_t& , TNumberFormat<nchar>* );
112template bool TSubstring<nchar>::consumeOctImpl ( uint64_t& , TNumberFormat<nchar>* );
113
114template bool TSubstring<wchar>::ConsumeFloat ( double& , TNumberFormat<wchar>* );
115template bool TSubstring<wchar>::consumeDecDigitsImpl( uint64_t& );
116template bool TSubstring<wchar>::consumeIntImpl ( int64_t& , TNumberFormat<wchar>* );
117template bool TSubstring<wchar>::consumeDecImpl ( uint64_t& , TNumberFormat<wchar>* );
118template bool TSubstring<wchar>::consumeBinImpl ( uint64_t& , TNumberFormat<wchar>* );
119template bool TSubstring<wchar>::consumeHexImpl ( uint64_t& , TNumberFormat<wchar>* );
120template bool TSubstring<wchar>::consumeOctImpl ( uint64_t& , TNumberFormat<wchar>* );
121
122template bool TSubstring<xchar>::ConsumeFloat ( double& , TNumberFormat<xchar>* );
123template bool TSubstring<xchar>::consumeDecDigitsImpl( uint64_t& );
124template bool TSubstring<xchar>::consumeIntImpl ( int64_t& , TNumberFormat<xchar>* );
125template bool TSubstring<xchar>::consumeDecImpl ( uint64_t& , TNumberFormat<xchar>* );
126template bool TSubstring<xchar>::consumeBinImpl ( uint64_t& , TNumberFormat<xchar>* );
127template bool TSubstring<xchar>::consumeHexImpl ( uint64_t& , TNumberFormat<xchar>* );
128template bool TSubstring<xchar>::consumeOctImpl ( uint64_t& , TNumberFormat<xchar>* );
129
130}} // namespace [alib::strings]
bool consumeDecImpl(uint64_t &result, TNumberFormat< TChar > *numberFormat)
Definition substring.cpp:35
bool consumeDecDigitsImpl(uint64_t &result)
Definition substring.cpp:10
bool consumeIntImpl(int64_t &result, TNumberFormat< TChar > *numberFormat)
Definition substring.cpp:21
integer ConsumeChars(integer regionLength, TSubstring *target=nullptr)
bool consumeOctImpl(uint64_t &result, TNumberFormat< TChar > *numberFormat)
Definition substring.cpp:77
bool ConsumeFloat(double &result, TNumberFormat< TChar > *numberFormat=nullptr)
Definition substring.cpp:91
bool consumeHexImpl(uint64_t &result, TNumberFormat< TChar > *numberFormat)
Definition substring.cpp:63
bool consumeBinImpl(uint64_t &result, TNumberFormat< TChar > *numberFormat)
Definition substring.cpp:49
uint64_t ParseOct(const TString< TChar > &src, integer &idx, const TNumberFormat< TChar > &nf)
uint64_t ParseHex(const TString< TChar > &src, integer &idx, const TNumberFormat< TChar > &nf)
int64_t ParseInt(const TString< TChar > &src, integer &idx, const TNumberFormat< TChar > &nf)
uint64_t ParseDecDigits(const TString< TChar > &src, integer &idx)
double ParseFloat(const TString< TChar > &src, integer &idx, const TNumberFormat< TChar > &nf)
uint64_t ParseDec(const TString< TChar > &src, integer &idx, const TNumberFormat< TChar > &nf)
uint64_t ParseBin(const TString< TChar > &src, integer &idx, const TNumberFormat< TChar > &nf)
Definition alox.cpp:14
lang::integer integer
Type alias in namespace #"%alib".
Definition integers.hpp:149
static TNumberFormat Computational