>> ...and I can't figure out what even after digging through the IBM source code ...
So you couldn't just look at the IString header to see how they did it?
Code:
#include <stdio.h>
struct T
{
char *p;
};//T
int main()
{
T t;
t.p = "Hello World\n";
printf("%s", t);
return 0;
}//main
If you want to use std::string, you'll have to change the implementation so that the "char*" is the first data member of the class. (A horrible idea by the way...)
You shouldn't be using std::string anyways since IString provides tons of unprotected access to the string buffer itself.
std::string only returns constant pointers to the string buffer.
gg