The compiler should cough at the line:
Code:
_text = parm.c_str();
since the assignment loses cv-qualifiers.

Also, can I once again point out that leading underscores in names are reserved by the standard for use by compiler and standard library writers only:
Section 17.4.3.1.2:
— Each name that contains a double underscore (_ _) or begins with an underscore followed by an uppercase letter (2.11) is reserved to the implementation for any use.
— Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace.