When moving SQL script files between systems having different character sets, such as between ASCII and EBCDIC, vertical bars might not be translated into the vertical bar required by the target Oracle Database environment.Oracle provides the character function as an alternative to the vertical bar operator for cases when it is difficult or impossible to control translation performed by operating system or network utilities.

However, this may not continue to be true in future versions of Oracle Database.

Tedious historical detail: prior to the ANSI standard, C didn't specify when temporaries should destruct.

The last time I used Sun's C compiler it still defaulted to destructing them at the end of the enclosing block, so the above program would work.

creates a nameless Wrapper object which is immediately destroyed, leaving your pointer pointing at nothing.

If you want to do this in pure C , you will have to use switch syntax either explicitely or in an external library (like tetzfamily.com/temp/Eval or codeproject.com/Articles/7939/C-based-Expression-Evaluation-Library)).

On some implementations, the non-const version may invalidate all iterators, pointers and references on the first access to string characters after the object has been constructed or modified.

The object is accessed, and in some implementations, the non-const version modifies it on the first access to string characters after the object has been constructed or modified.

The reference returned can be used to access or modify characters. Note that using the reference returned to modify elements that are out of bounds (including the character at pos) also causes undefined behavior.

Use this function in applications that will be moved between environments with differing character sets.