summaryrefslogtreecommitdiffhomepage
path: root/include/unicode/utf_fwd.h
blob: c42dea1093016849ad91f58e345f8c22a64d7359 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once

// Forward declarations

#include "types.h"

#include <string>

namespace unicode::detail {

 template<typename T, typename Container=std::basic_string<T>>
 struct utf_iterator;

 template<typename T, typename Container=std::basic_string<T>>
 struct utf_back_insert_iterator;

} // namespace unicode::detail

namespace unicode {

 template<typename InputIt, typename OutputIt>
 struct UTF;

 // Encoding for convert()
 typedef UTF<utf_iterator<utf8_t>, utf_back_insert_iterator<utf8_t>> UTF_8;
 typedef UTF<utf_iterator<char16_t>, utf_back_insert_iterator<char16_t>> UTF_16;
 typedef UTF<utf_iterator<char32_t>, utf_back_insert_iterator<char32_t>> UTF_32;

} // namespace unicode