PRODUCT : Borland C++ NUMBER : 1544 VERSION : All OS : All DATE : October 25, 1993 PAGE : 1/2 TITLE : Creating an ostream manipulator // Making an ostream manipulator with BC 3.1 (works for // previous C++ compilers as well) #include #include typedef char * charptr; // the function that will be called for the title() manipulator ostream& makeTitle(ostream& os, charptr string) { return os << "Dr. " << string << " (PhD)"; } // get a declaration for charptr (we can't simply use char * // because the space in that type name would confuse the // macro pasting.) IOMANIPdeclare(charptr); OMANIP(charptr) title(charptr string) { return OMANIP(charptr) (makeTitle, string); } // if the manipulator doesn't take any parameters, we don't // need to pass anything back to a separate function, so it's // a good deal simpler. ostream& greet(ostream &os) { return os << "Good Day, "; } int main() { cout << greet << title("Doolittle") ; return 0; } PRODUCT : Borland C++ NUMBER : 1544 VERSION : All OS : All DATE : October 25, 1993 PAGE : 2/2 TITLE : Creating an ostream manipulator DISCLAIMER: You have the right to use this technical information subject to the terms of the No-Nonsense License Statement that you received with the Borland product to which this information pertains.