-
Notifications
You must be signed in to change notification settings - Fork 0
/
eastl.cpp
67 lines (53 loc) · 1.43 KB
/
eastl.cpp
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
dependencies:
pvt.cppan.demo.electronicarts.eastl: 3.2.1
*/
// Simple program, basic usage of some EASTL containers.
#include <EASTL/hash_map.h>
#include <EASTL/string.h>
// EASTL expects us to define these, see allocator.h line 194
void* operator new[](size_t size, const char* pName, int flags,
unsigned debugFlags, const char* file, int line)
{
return malloc(size);
}
void* operator new[](size_t size, size_t alignment, size_t alignmentOffset,
const char* pName, int flags, unsigned debugFlags, const char* file, int line)
{
// this allocator doesn't support alignment
EASTL_ASSERT(alignment <= 8);
return malloc(size);
}
// EASTL also wants us to define this (see string.h line 197)
int Vsnprintf8(char8_t* pDestination, size_t n, const char8_t* pFormat, va_list arguments)
{
#ifdef _MSC_VER
return _vsnprintf(pDestination, n, pFormat, arguments);
#else
return vsnprintf(pDestination, n, pFormat, arguments);
#endif
}
void test_hash_map()
{
eastl::hash_map<eastl::string, eastl::string> map;
map["key1"] = "value1";
map["key2"] = "value2";
EASTL_ASSERT(map.find("key1")->second == "value1");
}
void test_string()
{
eastl::string str;
str += "testing ";
str += "simple ";
str += "string ";
str += "concat";
EASTL_ASSERT(str == "testing simple string concat");
str.sprintf("%d", 20);
EASTL_ASSERT(str == "20");
}
int main(int ac, char** av)
{
test_hash_map();
test_string();
return 0;
}