LIEF: Library to Instrument Executable Formats
Version 1.0.0
Toggle main menu visibility
Loading...
Searching...
No Matches
lief-install
x86_64
static
include
utf8cpp
utf8
cpp17.h
Go to the documentation of this file.
1
// Copyright 2018 Nemanja Trifunovic
2
3
/*
4
Permission is hereby granted, free of charge, to any person or organization
5
obtaining a copy of the software and accompanying documentation covered by
6
this license (the "Software") to use, reproduce, display, distribute,
7
execute, and transmit the Software, and to prepare derivative works of the
8
Software, and to permit third-parties to whom the Software is furnished to
9
do so, all subject to the following:
10
11
The copyright notices in the Software and this entire statement, including
12
the above license grant, this restriction and the following disclaimer,
13
must be included in all copies of the Software, in whole or in part, and
14
all derivative works of the Software, unless such copies or derivative
15
works are solely in the form of machine-executable object code generated by
16
a source language processor.
17
18
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
21
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
22
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
23
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24
DEALINGS IN THE SOFTWARE.
25
*/
26
27
28
#ifndef UTF8_FOR_CPP_7e906c01_03a3_4daf_b420_ea7ea952b3c9
29
#define UTF8_FOR_CPP_7e906c01_03a3_4daf_b420_ea7ea952b3c9
30
31
#include "
cpp11.h
"
32
33
namespace
utf8
34
{
35
inline
std::string
utf16to8
(std::u16string_view s)
36
{
37
std::string result;
38
utf16to8
(s.begin(), s.end(), std::back_inserter(result));
39
return
result;
40
}
41
42
inline
std::u16string
utf8to16
(std::string_view s)
43
{
44
std::u16string result;
45
utf8to16
(s.begin(), s.end(), std::back_inserter(result));
46
return
result;
47
}
48
49
inline
std::string
utf32to8
(std::u32string_view s)
50
{
51
std::string result;
52
utf32to8
(s.begin(), s.end(), std::back_inserter(result));
53
return
result;
54
}
55
56
inline
std::u32string
utf8to32
(std::string_view s)
57
{
58
std::u32string result;
59
utf8to32
(s.begin(), s.end(), std::back_inserter(result));
60
return
result;
61
}
62
63
inline
std::size_t
find_invalid
(std::string_view s)
64
{
65
std::string_view::const_iterator invalid =
find_invalid
(s.begin(), s.end());
66
return
(invalid == s.end()) ? std::string_view::npos :
static_cast<
std::size_t
>
(invalid - s.begin());
67
}
68
69
inline
bool
is_valid
(std::string_view s)
70
{
71
return
is_valid
(s.begin(), s.end());
72
}
73
74
inline
std::string
replace_invalid
(std::string_view s,
char32_t
replacement)
75
{
76
std::string result;
77
replace_invalid
(s.begin(), s.end(), std::back_inserter(result), replacement);
78
return
result;
79
}
80
81
inline
std::string
replace_invalid
(std::string_view s)
82
{
83
std::string result;
84
replace_invalid
(s.begin(), s.end(), std::back_inserter(result));
85
return
result;
86
}
87
88
inline
bool
starts_with_bom
(std::string_view s)
89
{
90
return
starts_with_bom
(s.begin(), s.end());
91
}
92
93
}
// namespace utf8
94
95
#endif
// header guard
96
cpp11.h
utf8
Definition
checked.h:35
utf8::starts_with_bom
bool starts_with_bom(octet_iterator it, octet_iterator end)
Definition
core.h:484
utf8::utf32to8
octet_iterator utf32to8(u32bit_iterator start, u32bit_iterator end, octet_iterator result)
Definition
checked.h:269
utf8::utf8to16
u16bit_iterator utf8to16(octet_iterator start, octet_iterator end, u16bit_iterator result)
Definition
checked.h:254
utf8::utf8to32
u32bit_iterator utf8to32(octet_iterator start, octet_iterator end, u32bit_iterator result)
Definition
checked.h:278
utf8::utf16to8
octet_iterator utf16to8(u16bit_iterator start, u16bit_iterator end, octet_iterator result)
Definition
checked.h:227
utf8::is_valid
bool is_valid(octet_iterator start, octet_iterator end)
Definition
core.h:466
utf8::find_invalid
octet_iterator find_invalid(octet_iterator start, octet_iterator end)
Definition
core.h:442
utf8::replace_invalid
output_iterator replace_invalid(octet_iterator start, octet_iterator end, output_iterator out, utfchar32_t replacement)
Definition
checked.h:97
Generated by
1.17.0