Warenkorb
Kostenloser Versand
Unsere Operationen sind klimaneutral

Standard C++ IOStreams and Locales Angelika Langer

Standard C++ IOStreams and Locales von Angelika Langer

Standard C++ IOStreams and Locales Angelika Langer


€12.49
Zustand - Sehr Gut
Nur noch 2

Zusammenfassung

Provides a description of the iostreams and locales classes, showing how to put them to use and offering information on customizing and extending their basic operation. Written by two experts involved with the development of the standard, this book reveals the rationale behind the design of the APIs and points out their potential pitfalls.

Standard C++ IOStreams and Locales Zusammenfassung

Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference Angelika Langer

IOStreams and Locales are two of the most important, eagerly-awaited components of the ISO/ANSI C++ standard -- and this is the first book to cover them exclusively, and in great depth. The authors explain the problems that IOStreams and Locales solve; then present a wide range of examples and techniques, from simple to sophisticated. The authors introduce concepts, component architecture, standards-compliant code, and practical patterns of use. Coverage includes: key differences between standard IOStreams and the non-standard versions that preceded it; how to extend the Locales component for more effective internationalization; and more. The book also includes a complete, authoritative class reference. Experienced developers can use the book as a start-to-finish learning tool, or as a handy just-in-time reference for specific techniques.

Über Angelika Langer

Angelika Langer works as a freelance instructor and courseware developer. Previously, she was a senior trainer and developer at Rogue Wave Software, Inc. She also worked for a compiler group at Siemens, where she was responsible for the C++ compiler's standard library. She is a frequent speaker at international object-oriented conferences and was a member of the ISO/ANSI C++ standards committee.

Klaus Kreft is a Senior Consultant at Siemens Business Services. He was previously a senior consultant at Rogue Wave Software, Inc., and system architect at Siemens. Together with Angelika Langer he writes a regular column on the Standard C++ Library for C++ Report.



0201183951AB04062001

Inhaltsverzeichnis



Preface.


Foreword.


Guide to Readers.

PART I. STREAM INPUT AND OUTPUT.

1. IOStreams Basics.

Input and Output.

Formatted Input/Output.

The Predefined Global Streams.

The Input and Output Operators.

The Format Parameters of a Stream.

Manipulators.

The Locale of a Stream.

Comparison Between Formatted Input and Output.

Peculiarities of Formatted Input.

The Stream State.

The Stream State Flags.

Checking the Stream State.

Catching Stream Exceptions.

Resetting the Stream State.

File Input/Output.

Creating, Opening, Closing and Destroying File Streams.

The Open Modes.

Bidirectional File Streams.

In-Memory Input/Output.

Unformatted Input/Output.

Stream Positioning.

Synchronization of Streams.

Means of Synchronization.

Synchronization via flush() and sync().

Synchronization using the unitbuf Format Flag.

Synchronization by Tying Streams.

Synchronizing the Predefined Standard Streams.

Synchronization Among the Predefined Standard Streams.

Synchronization with the C Standard I/O.

Synchronization with the External Device.

Synchronization Between Predefined Standard for Narrow and Wide Characters.

2. The Architecture of IOStreams.

The Stream Class.

Class Heirarchy.

The Stream Base Classes.

The General Stream Classes.

The Concrete Stream Classes.

How Streams Maintain their Stream Buffer.

Copying and Assignment of Streams.

How Streams Maintain Their Locale.

Collaboration Among Streams, Stream Buffers, and Locales.

The Stream Buffer Classes.

Class Heirarchy.

The Stream Buffer Abstraction.

String Stream Buffers.

File Stream Buffers.

Character Types and Character Traits.

Character Representations.

Character Traits.

Requirements of a Character Traits Type.

The End-of-File Character.

Copying, Finding, and Comparing Characters.

Conversion State.

Stream Positions.

The Predefined Standard Character Traits.

Character Types.

Requirements for Character Types.

Stream Iterators and Stream Buffer Iterators.

The Concepts of Iterators in the Standard Library.

Stream Iterators.

Output Stream Iterator.

Input Stream Iterator.

Stream Iterators are One-Pass Iterators.

Stream Buffer Iterators.

Output Stream Buffer Iterator.

Input Stream Buffer Iterator.

Additional Stream Storage and Stream Callbacks.

Additional Stream Storage.

Stream Callbacks.

3. Advanced IOStreams Usage.

Input and Output of User-Defined Types.

The Signature of Inserters and Extractors.

First Inserters and Extractors.

Refinements.

Format Control.

Prefix and Suffix Operations.

Error Indication.

Internationalization.

I/O Operations.

Refined Inserters and Extractors.

Internationalization.

Prefix and Suffix Operations.

Format Control.

Error Indication.

Using the Refined Inserter and Extractor.

Generic Inserters and Extractors.

Simple Versus Refined Approach.

User-Defined Manipulators.

Manipulators Without Parameters.

Manipulators with Parameters.

Straightforward Manipulator Implementations.

Generalized Technique: Using a Manipulator Base Template.

Variants of a Manipulator Implementation.

Refinements.

Manipulator Base Template with Error Handling.

Manipulators with State.

The Standard Manipulator Base Type smanip.

Extending Stream Functionality.

Using Stream Storage for Private Use: iword, pword, and xalloc.

Initializing and Maintaining the iword/pword Index.

Implementing the Date Inserter.

Implementing the Maniuplator.

Using Stream Callbacks for Memory Management.

Error Indication of Stream Callback Functions.

Extending the Example.

Using the New Functionality.

Evaluation of the iword/pword Approach.

Creating New Stream Classes by Derivation.

Deriving the New Stream Classes by Derivation.

Implementing the Date Inserter and the Manipulator.

Implementing the Date Inserter.

Implementing the Manipulator.

Using the New Functionality.

Summary.

Comparing Both Solutions-iword/pword Versus Derivation.

Adding Stream Buffer Functionality.

Deriving from the Stream Buffer Base Class.

Core Functionality of Stream Buffers Character Transportation.

Stream Buffer for Unbuffered Character Transport.

Stream Buffer for Buffered Character Transport.

Optional Functionality of Stream Buffers.

Providing New Stream Classes Along with New Stream Buffer Classes.

Deriving from Concrete Stream Buffer Classes.

II. INTERNATIONALIZATION.

4. Introduction to Internationalization and Localization.

Internationalization and Localization.

Cultural Conventions.

Language.

Numerical Values.

Monetary Values.

Time and Date.

Sorting Words.

Messages.

Character Encodings.

Terms and Definitions.

Character Codesets.

Character Encoding Schemes.

Japanese Multibyte Encoding Schemes.

Uses of Multibyte Encodings and Wide Characters.

Code Conversions.

5. Locales.

Creating Locale Objects.

Named Locales.

Combined Locales.

The Global Locale.

Retrieving Facets from a Locale.

has_facet.

use_facet.

6. Standard Facets.

Alphabet- and Language-Related Facets.

Character Classification.

Character Classification.

Character Conversion to Upper- and Lowercase.

Character Conversion Between charT and char.

Special Properties of ctype.

String Collation.

Code Conversion.

Message Catalogs.

Formatting and Parsing Facets.

Numerical and Boolean Values.

The numpunct Facet.

The num_put Facet.

The num_get Facet.

Monetary Values.

The moneypunct Facet.

The money_put Facet.

The money_get Facet.

Date and Time Values.

The time_put Facet.

The time_get Facet.

Grouping of Standard Facets in a Locale.

The Standard Facet Families.

The Standard Facet Base Class Templates.

The Derived by name Facets.

Behavior of the Base Class Facets.

Mandatory Facet Types.

Locale Categories.

Diagram: Facets and Categories.

Advanced Usage of the Standard Facets.

Indirect Use of a Facet Through a Stream.

Use of a Facet Through a Locale.

Direct Use of the Facet Independent of a Locale.

7. The Archtecture of the Locale Framework.

Class Hierarchy.

Identification and Lookup of Facets in a Locale.

Facet Identification.

Facet Lookup.

Retrieval of Facets from a Locale.

Storing Facets in a Locale.

The Rationale Behind the Use of the Two-Phase Polymorphism.

Memory Management of Facets in Locale.

The Facet Reference Counter.

Immutability of Facets in a Locale.

8. User-Defined Facets.

Adding a User-Defined Facet to an Existing Facet Family.

Defining a New Facet Family.

Reference Guide.
Introduction.
1. Locale.

header file.

global functions.

codecvt.

codecvt_base.

codecvt_byname.

collate.

collate_byname.

ctype.

ctype.

cytpe_base.

ctype_byname.

locale.

messages.

messages_base.

messages_byname.

money_base.

money_get.

moneypunct.

moneypunct_byname.

money_put.

num_get.

numpunct.

numpunct_byname.

num_put.

time_base.

time_get.

time_get_byname.

time_put.

time_put_byname.

time_base.

tm.

2. Character Traits.

header file.

char_traits.

char_traits.

char_traits.

3. IOStreams.

header file.

global type definitions.

global objects.

basic_filebuf.

basic_fstream.

basic_ifstream.

basic_ios.

basic_iostream.

basic_istream.

basic_istringstream.

basic_ofstream.

basic_ostream.

basic_ostringstream.

basic_streambuf.

basic_stringbuf.

basic_stringstream.

fpos.

ios_base.

manipulators.

4. Stream Iterators.

header file.

istreambuf_iterator.

istream_iterator.

iterator.

iterator category tags.

ostreambuf_iterator.

ostream_iterator.

5. Other I/O Operations.

bitset .

complex.

basic_string.

Appendix A: Parsing and Extraction of Numerical and bool Values.

A.1 Parsing Numerical Values.

A.2 Parsing bool Values.

A.3 Conversion Specifier and Length Modifier.

Appendix B: Formatting of Numerical and bool Values.

B.1 Formatting Numerical Values.

B.2 Formatting bool Values.

B.3 Conversion Specifiers, Qualifiers, and Length Modifiers.

Appendix C: strftime() Conversion Specifiers.
Appendix D: Correspondences Between C and C++IOStreams.

D.1 File Open Modes.

D.2 Stream Positions.

Appendix E: Differences Between Classic and Standard IOStreams.

E.1 Templatizing the IOStreams Classes.

E.2 Splitting Base Class ios.

E.3 Indicating Errors.

E.4 Internationalizing IOStreams.

E.5 Removing_withassign Classes.

E.6 Removing File Descriptors.

E.7 String Streams: Replacing strstream by stringstream.

E.8 Changes to the Stream Buffer Classes.

E.9 Minor changes.

Appendix F: Relationship Between C and C++ Locales.

F.1 Locale Categories in C and C++.

F.2 The Global Locale in C and C++.

Appendix G: New C++ Features and Idoms.

G.1 Bitmask Types.

G.2 POD--Plain Old Data.

G.3 Explicit Constructors.

G.4 Template Specialization.

G.5 Default Template Arguments.

G.6 Explicit Template Argument Specification.

G.7 The Typename Keyword.

G.8 Dynamic Cast.

G.9 Function try Blocks.

G.10 Standard Exceptions.

G.11 Numeric Limits.

G.12 C++ Strings.

Bibliography.
Index. 0201183951T04062001

Zusätzliche Informationen

GOR005324327
9780201183955
0201183951
Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference Angelika Langer
Gebraucht - Sehr Gut
Gebundene Ausgabe
Pearson Education (US)
20000224
672
N/A
Die Abbildung des Buches dient nur Illustrationszwecken, die tatsächliche Bindung, das Cover und die Auflage können sich davon unterscheiden.
Dies ist ein gebrauchtes Buch. Es wurde schon einmal gelesen und weist von der früheren Nutzung Gebrauchsspuren auf. Wir gehen davon aus, dass es im Großen und Ganzen in einem sehr guten Zustand ist. Sollten Sie jedoch nicht vollständig zufrieden sein, setzen Sie sich bitte mit uns in Verbindung.