cpp/io/manip/quoted

Allows insertion and extraction of quoted strings, such as the ones found in CSV or XML.

@1-3@ When used in an expression, where is an output stream with  equal to  and, for overloads 2-3,  equal to , behaves as a , which inserts into  a sequence of characters  constructed as follows:
 * @a@ First, the character is added to the sequence
 * @b@ Then every character from, except if the next character to output equals or equals  (as determined by the stream's ), then first appends an extra copy of
 * @c@ In the end, is appended to  once more


 * Then, if, adds copies of the fill character  either at the end of the sequence (if  is set in ) or at the beginning of the sequence (in all other cases).


 * Finally, outputs each character from the resulting sequence as if by calling, where and  to cancel the effects of std, if any.

@4@ When used in an expression, where is an input stream with  equal to  and  equal to , extracts characters from , using std, according to the following rules:
 * @a@ If the first character extracted does not equal (as determined by the stream's ), then simply performs.
 * @b@ Otherwise (if the first character is the delimiter):
 * @1@ Turns off the skipws flag on the input stream
 * @2@ Empties the destination string by calling
 * @3@ Extracts characters from and appends them to, except that whenever an  character is extracted, it is ignored and the next character is appended to . Extraction stops when  or when an unescaped  character is found.
 * @4@ Discards the final (unescaped) character.
 * @5@ Restores the skipws flag on the input stream to its original value.

Return value
Returns an object of unspecified type such that the described behavior takes place.

Exceptions
Throws std if or  throws.