Read the first valid sequence of characters from the string, skipping leading whitespace, and convert it using from_chars: generalized chars to value .
More...
|
| size_t | c4::from_chars_first (csubstr buf, uint8_t *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, uint16_t *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, uint32_t *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, uint64_t *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, int8_t *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, int16_t *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, int32_t *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, int64_t *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, float *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, double *v) noexcept |
| template<class T> |
| auto | c4::from_chars_first (csubstr buf, T *v) noexcept -> size_t::type |
| template<class T> |
| size_t | c4::from_chars_first (csubstr buf, T **v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, bool *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, char *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, csubstr *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, substr *v) noexcept |
| size_t | c4::from_chars_first (csubstr buf, fmt::raw_wrapper *r) |
| | read a variable in raw binary format, using memcpy
|
| size_t | c4::from_chars_first (csubstr buf, fmt::raw_wrapper r) |
| | read a variable in raw binary format, using memcpy
|
Read the first valid sequence of characters from the string, skipping leading whitespace, and convert it using from_chars: generalized chars to value .
Return the number of characters read for converting.
Dispatches to the most appropriate and efficient conversion function.
- See also
- atou_first, atoi_first, atof_first, atod_first
◆ from_chars_first() [1/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
uint8_t * | v ) |
|
inlinenoexcept |
Definition at line 2410 of file charconv.hpp.
size_t atou_first(csubstr str, T *v)
Select the next range of characters in the string that can be parsed as an unsigned integral value,...
◆ from_chars_first() [2/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
uint16_t * | v ) |
|
inlinenoexcept |
◆ from_chars_first() [3/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
uint32_t * | v ) |
|
inlinenoexcept |
◆ from_chars_first() [4/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
uint64_t * | v ) |
|
inlinenoexcept |
◆ from_chars_first() [5/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
int8_t * | v ) |
|
inlinenoexcept |
Definition at line 2414 of file charconv.hpp.
size_t atoi_first(csubstr str, T *v)
Select the next range of characters in the string that can be parsed as a signed integral value,...
◆ from_chars_first() [6/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
int16_t * | v ) |
|
inlinenoexcept |
◆ from_chars_first() [7/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
int32_t * | v ) |
|
inlinenoexcept |
◆ from_chars_first() [8/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
int64_t * | v ) |
|
inlinenoexcept |
◆ from_chars_first() [9/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
float * | v ) |
|
inlinenoexcept |
Definition at line 2418 of file charconv.hpp.
size_t atof_first(csubstr str, float *v) noexcept
Convert a string to a single precision real number.
◆ from_chars_first() [10/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
double * | v ) |
|
inlinenoexcept |
Definition at line 2419 of file charconv.hpp.
size_t atod_first(csubstr str, double *v) noexcept
Convert a string to a double precision real number.
◆ from_chars_first() [11/18]
template<class T>
| auto c4::from_chars_first |
( |
csubstr | buf, |
|
|
T * | v )->size_t::type |
|
inlinenoexcept |
◆ from_chars_first() [12/18]
template<class T>
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
T ** | v ) |
|
inlinenoexcept |
Definition at line 2424 of file charconv.hpp.
2424{ intptr_t tmp;
bool ret =
from_chars_first(buf, &tmp);
if(ret) { *v = (T*)tmp; }
return ret; }
size_t from_chars_first(csubstr buf, uint8_t *v) noexcept
◆ from_chars_first() [13/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
bool * | v ) |
|
inlinenoexcept |
Definition at line 2509 of file charconv.hpp.
2510{
2515}
bool from_chars(csubstr buf, uint8_t *v) noexcept
basic_substring< const char > csubstr
an immutable string view
size_t len
the length of the substring
basic_substring first_non_empty_span() const
get the first span consisting exclusively of non-empty characters
◆ from_chars_first() [14/18]
| size_t c4::from_chars_first |
( |
csubstr | buf, |
|
|
char * | v ) |
|
inlinenoexcept |
Definition at line 2546 of file charconv.hpp.
2547{
2551 return 1;
2552}
C * str
a restricted pointer to the first character of the substring
◆ from_chars_first() [15/18]
Definition at line 2583 of file charconv.hpp.
2584{
2586 if(trimmed.
len == 0)
2588 *v = trimmed;
2589 return static_cast<size_t>(trimmed.
end() - buf.
begin());
2590}
iterator begin() noexcept
◆ from_chars_first() [16/18]
Definition at line 2636 of file charconv.hpp.
2637{
2640 if(C4_UNLIKELY(trimmed.
len == 0))
2642 size_t len = trimmed.
len > v->
len ? v->
len : trimmed.
len;
2643
2644
2645
2646 if(len)
2647 {
2648 C4_ASSERT(buf.
str !=
nullptr);
2649 C4_ASSERT(v->
str !=
nullptr);
2650 memcpy(v->
str, trimmed.
str, len);
2651 }
2652 if(C4_UNLIKELY(trimmed.
len > v->
len))
2654 return static_cast<size_t>(trimmed.
end() - buf.
begin());
2655}
bool overlaps(ro_substr const that) const noexcept
true if there is overlap of at least one element between that and *this
◆ from_chars_first() [17/18]
read a variable in raw binary format, using memcpy
Definition at line 472 of file format.hpp.
◆ from_chars_first() [18/18]
read a variable in raw binary format, using memcpy
Definition at line 478 of file format.hpp.