| 12345678910111213141516171819202122232425262728 | #include <unordered_map>#include <string>#include "cstrcache.h"using namespace std;struct const_string_table {	unordered_map<string, string> strings;};static struct const_string_table table;const char *cstrcache_get(const char *str){	if (!str || !*str)		return "";	auto &strings = table.strings;	auto pair = strings.find(str);	if (pair == strings.end()) {		strings[str] = str;		pair = strings.find(str);	}	return pair->second.c_str();}
 |