acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
string_heap_data.h
1#pragma once
2
3
4
5
6
7
8template < typename STRING >
9inline STRING & string_concatenate(STRING & strResult, const typename STRING::CHARACTER_TYPE * psz1, character_count nLength1, const typename STRING::CHARACTER_TYPE * psz2, character_count nLength2);
10
11//template < typename CHARACTER_TYPE >
12//class string_buffer;
13#include "acme/prototype/prototype/natural_pointer.h"
14
15
16// template < prototype_character CHARACTER >
17// class string_heap_data :
18// public heap_data < CHARACTER >
19// {
20// public:
21//
22//
23// typedef string_heap_data < CHARACTER > STRING_HEAP_DATA;
24//
25//
26// using heap_data < CHARACTER >::heap_data;
27//
28//
29// /// in bytes, without meta, with null(s)
30// inline ::memsize storage_size() const { return (::memsize) this->m_sizeStorageInBytes; }
31// /// storage_size expressed in number of characters
32// inline ::character_count storage_character_count() const;
33//
34//
35// ///// always ::i8 count (before first [and possibly final, but not necessarily final] null terminator)
36// //inline ::character_count character_count() const { return (::character_count) this->m_countData; }
37// //inline ::memsize character_count_in_bytes() const;
38// //inline ::memsize null_terminated_character_count_in_bytes() const;
39// //
40//
41// //inline void raw_set_character_count(::character_count character_count);
42// //inline void set_character_count(::character_count character_count);
43//
44//
45// operator const CHARACTER * () const noexcept { return this->c_data(); }
46//
47//
48// operator CHARACTER * () noexcept { return this->data(); }
49//
50//
51// const CHARACTER * c_str() const noexcept { return this->c_data(); }
52//
53//
54// };
55
56
57// template < >
58// CLASS_DECL_ACME base_data < string_heap_data < ::ansi_character > > * __nil < base_data < string_heap_data < ::ansi_character > > >();
59//
60// template < >
61// CLASS_DECL_ACME base_data < string_heap_data < ::wd16_character > > * __nil < base_data < string_heap_data < ::wd16_character > > >();
62//
63// template < >
64// CLASS_DECL_ACME base_data < string_heap_data < ::wd32_character > > * __nil < base_data < string_heap_data < ::wd32_character > > >();
65
66
67
68
69
70enum e_char_count
71{
72
73 char_count,
74};
75
76enum e_byte_count
77{
78
79 byte_count,
80};
81
82
83//#include "acme/memory/string_memory_allocator.h"
84
85
86