// deliberately not checking for 0. Ok to allocate a 0 byte array
boost::scoped_array<uint8_t>spAlloc(newuint8_t[size+2]);// add two bytes for null termination (makes debugging ascii and unicode strings easier), but these two bytes are invisible to the caller (not included in _allocatedSize)
std::vector<uint8_t>spAlloc(size+2);// add two bytes for null termination (makes debugging ascii and unicode strings easier), but these two bytes are invisible to the caller (not included in _allocatedSize)