acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
from_integer.h
1#pragma once
2
3
4#include <string.h>
5
6CLASS_DECL_ACME string i64toa_dup(::i64 i, ::i32 iBase);
7CLASS_DECL_ACME string i64toa_dup(::i64 i);
8
9CLASS_DECL_ACME string ui64toa_dup(::i64 i, ::i32 iBase);
10CLASS_DECL_ACME string ui64toa_dup(::i64 i);
11
12template < prototype_integer INTEGER >
13::string string_from(INTEGER i, ::i32 iBase = 10)
14{
15
16 return i64toa_dup(i, iBase);
17
18}
19
20inline string ansi_string_from_i64(::i64 i, ::i32 iBase = 10, enum_digit_case edigitcase = e_digit_case_lower);
21inline char_pointer ansi_concatenate_i64(char_pointer psz, ::i64 i, ::i32 iBase = 10, enum_digit_case edigitcase = e_digit_case_lower);
22
23
24
25
26
27inline void wide_from_i64_base(::wide_character * sz, ::i64 i, ::i32 iBase, enum_digit_case edigitcase = e_digit_case_lower);
28inline void wide_from_u64_base(::wide_character * sz, ::u64 i, ::i32 iBase, enum_digit_case edigitcase = e_digit_case_lower);
29
30
31inline string ansi_string_from_i64(::i64 i, ::i32 iBase, enum_digit_case edigitcase)
32{
33 ::i8 sz[32];
34//#if defined(LINUX) || defined(__APPLE__) || defined(__ANDROID__) || defined(FREEBSD) || defined(OPENBSD)
35 ansi_from_i64(sz, i, iBase, edigitcase);
36//#else
37// _i64toa(i, sz, 10);
38//#endif
39 return string(sz);
40}
41
42inline char_pointer ansi_concatenate_i64(char_pointer psz, ::i64 i, ::i32 iBase, enum_digit_case edigitcase)
43{
44//#if defined(LINUX) || defined(__APPLE__) || defined(__ANDROID__) || defined(FREEBSD) || defined(OPENBSD)
45 ansi_from_i64(psz + strlen(psz), i, iBase, edigitcase);
46//#else
47// _i64toa(i, psz + strlen(scopedstr), 10);
48//#endif
49 return psz;
50}
51
52
53inline string ansi_string_from_i(::i32 i, ::i32 iBase, enum_digit_case edigitcase)
54{
55 ::i8 sz[16];
56//#if defined(LINUX) || defined(__APPLE__) || defined(__ANDROID__) || defined(FREEBSD) || defined(OPENBSD)
57 ansi_from_i64(sz, i, iBase, edigitcase);
58//#else
59 // _itoa(i, sz, 10);
60//#endif
61 return string(sz);
62}
63
64//inline ::wide_character * wide_concatenate_i64(::wide_character * pwsz, ::i64 i)
65//{
66//#if defined(LINUX) || defined(__APPLE__) || defined(__ANDROID__) || defined(FREEBSD) || defined(OPENBSD)
67// wide_from_i64_base(wide_last_char(pwsz), i, 10);
68//#else
69// _i64tow(i, wide_last_char(pwsz), 10);
70//#endif
71// return pwsz;
72//}
73//
74//inline ::wide_character * wide_concatenate_u64(::wide_character * pwsz, ::u64 u)
75//{
76//#if defined(LINUX) || defined(__APPLE__) || defined(__ANDROID__) || defined(FREEBSD) || defined(OPENBSD)
77// wide_from_u64_base(wide_last_char(pwsz), u, 10);
78//#else
79// _ui64tow(u, wide_last_char(pwsz), 10);
80//#endif
81// return pwsz;
82//}
83