const To* and
has two properties: ptr to access C string as const To* and buffPtr to access it as To*.
The value returned can be indexed by [] to access it as an array.
The temporary C string is valid unless returned object is destroyed. Thus if returned object is assigned to a variable the temporary is valid unless the variable goes out of scope. If returned object isn't assigned to a variable it will be destroyed at the end of creating primary expression.
Implementation_note: For small strings tempCString will use stack allocated buffer, for large strings (approximately 250 characters and more) it will allocate temporary one using C's malloc.