100% found this document useful (6 votes)
21 views65 pages

(Ebook) C++ templates: the complete guide by David Vandevoorde & Nicolai M. Josuttis & Douglas Gregor ISBN 9780321714121, 0321714121 2024 scribd download

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 65

Download Full Version ebook - Visit ebooknice.

com

(Ebook) C++ templates: the complete guide by David


Vandevoorde & Nicolai M. Josuttis & Douglas Gregor
ISBN 9780321714121, 0321714121

https://ebooknice.com/product/c-templates-the-complete-
guide-12058202

Click the button below to download

DOWLOAD EBOOK

Discover More Ebook - Explore Now at ebooknice.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

(Ebook) C++ Templates: The Complete Guide by David


Vandevoorde, Nicolai M. Josuttis, Douglas Gregor ISBN
9780321714121, 0321714121
https://ebooknice.com/product/c-templates-the-complete-guide-10465476

ebooknice.com

(Ebook) C++ templates: the complete guide by Vandevoorde,


David;Josuttis, Nicolai M ISBN 9780201734843, 0201734842

https://ebooknice.com/product/c-templates-the-complete-guide-21347522

ebooknice.com

(Ebook) C++17 - The Complete Guide by Nicolai M. Josuttis

https://ebooknice.com/product/c-17-the-complete-guide-48360588

ebooknice.com

(Ebook) C++20 : The Complete Guide by Nicolai M. Josuttis

https://ebooknice.com/product/c-20-the-complete-guide-48375422

ebooknice.com
(Ebook) C++20 The Complete Guide by Nicolai M. Josuttis

https://ebooknice.com/product/c-20-the-complete-guide-48957398

ebooknice.com

(Ebook) C++17 - The Complete Guide by Nicolai M. Josuttis

https://ebooknice.com/product/c-17-the-complete-guide-11456262

ebooknice.com

(Ebook) C++ Move Semantics - The Complete Guide by Nicolai


M. Josuttis

https://ebooknice.com/product/c-move-semantics-the-complete-
guide-46824864

ebooknice.com

(Ebook) C++ Move Semantics - The Complete Guide by Nicolai


M. Josuttis ISBN 9783967309003, 3967309002

https://ebooknice.com/product/c-move-semantics-the-complete-
guide-23272572

ebooknice.com

(Ebook) The C++ Standard Library by Nicolai M. Josuttis


ISBN 9780321623218, 0321623215

https://ebooknice.com/product/the-c-standard-library-6761728

ebooknice.com
C++ Templates
The Complete Guide
Second Edition

David Vandevoorde
Nicolai M. Josuttis
Douglas Gregor

Boston • Columbus • Indianapolis • New York • San Francisco •


Amsterdam • Cape Town Dubai • London • Madrid • Milan • Munich
• Paris • Montreal • Toronto • Delhi • Mexico City São Paulo • Sydney
• Hong Kong • Seoul • Singapore • Taipei • Tokyo
Many of the designations used by manufacturers and sellers to
distinguish their products are claimed as trademarks. Where those
designations appear in this book, and the publisher was aware of a
trademark claim, the designations have been printed with initial
capital letters or in all capitals.
The authors and publisher have taken care in the preparation of this
book, but make no expressed or implied warranty of any kind and
assume no responsibility for errors or omissions. No liability is
assumed for incidental or consequential damages in connection with
or arising out of the use of the information or programs contained
herein.
For information about buying this title in bulk quantities, or for
special sales opportunities (which may include electronic versions;
custom cover designs; and content particular to your business,
training goals, marketing focus, or branding interests), please
contact our corporate sales department at
[email protected] or (800) 382-3419.
For government sales inquiries, please contact
[email protected].
For questions about sales outside the U.S., please contact
[email protected].
Visit us on the Web: informit.com/aw
Library of Congress Catalog Number: 2017946531
Copyright © 2018 Pearson Education, Inc.
This book was typeset by Nicolai M. Josuttis using the LATEX
document processing system. All rights reserved. Printed in the
United States of America. This publication is protected by copyright,
and permission must be obtained from the publisher prior to any
prohibited reproduction, storage in a retrieval system, or
transmission in any form or by any means, electronic, mechanical,
photocopying, recording, or likewise. For information regarding
permissions, request forms and the appropriate contacts within the
Pearson Education Global Rights & Permissions Department, please
visit www.pearsoned.com/permissions/.
ISBN-13: 978-0-321-71412-1
ISBN-10: 0-321-71412-1
1 17
To Alessandra & Cassandra
—David

To those who care for people and mankind


—Nico

To Amy, Tessa & Molly


—Doug
Contents

Preface
Acknowledgments for the Second Edition
Acknowledgments for the First Edition
About This Book
What You Should Know Before Reading This Book
Overall Structure of the Book
How to Read This Book
Some Remarks About Programming Style
The C++11, C++14, and C++17 Standards
Example Code and Additional Information
Feedback

Part I: The Basics

1 Function Templates
1.1 A First Look at Function Templates
1.1.1 Defining the Template
1.1.2 Using the Template
1.1.3 Two-Phase Translation
1.2 Template Argument Deduction
1.3 Multiple Template Parameters
1.3.1 Template Parameters for Return Types
1.3.2 Deducing the Return Type
1.3.3 Return Type as Common Type
1.4 Default Template Arguments
1.5 Overloading Function Templates
1.6 But, Shouldn’t We …?
1.6.1 Pass by Value or by Reference?
1.6.2 Why Not inline?
1.6.3 Why Not constexpr?
1.7 Summary

2 Class Templates
2.1 Implementation of Class Template Stack
2.1.1 Declaration of Class Templates
2.1.2 Implementation of Member Functions
2.2 Use of Class Template Stack
2.3 Partial Usage of Class Templates
2.3.1 Concepts
2.4 Friends
2.5 Specializations of Class Templates
2.6 Partial Specialization
2.7 Default Class Template Arguments
2.8 Type Aliases
2.9 Class Template Argument Deduction
2.10 Templatized Aggregates
2.11 Summary

3 Nontype Template Parameters


3.1 Nontype Class Template Parameters
3.2 Nontype Function Template Parameters
3.3 Restrictions for Nontype Template Parameters
3.4 Template Parameter Type auto
3.5 Summary

4 Variadic Templates
4.1 Variadic Templates
4.1.1 Variadic Templates by Example
4.1.2 Overloading Variadic and Nonvariadic Templates
4.1.3 Operator sizeof…
4.2 Fold Expressions
4.3 Application of Variadic Templates
4.4 Variadic Class Templates and Variadic Expressions
4.4.1 Variadic Expressions
4.4.2 Variadic Indices
4.4.3 Variadic Class Templates
4.4.4 Variadic Deduction Guides
4.4.5 Variadic Base Classes and using
4.5 Summary

5 Tricky Basics
5.1 Keyword typename
5.2 Zero Initialization
5.3 Using this->
5.4 Templates for Raw Arrays and String Literals
5.5 Member Templates
5.5.1 The .template Construct
5.5.2 Generic Lambdas and Member Templates
5.6 Variable Templates
5.7 Template Template Parameters
5.8 Summary

6 Move Semantics and enable_if<>


6.1 Perfect Forwarding
6.2 Special Member Function Templates
6.3 Disable Templates with enable_if<>
6.4 Using enable_if<>
6.5 Using Concepts to Simplify enable_if<> Expressions
6.6 Summary
7 By Value or by Reference?
7.1 Passing by Value
7.2 Passing by Reference
7.2.1 Passing by Constant Reference
7.2.2 Passing by Nonconstant Reference
7.2.3 Passing by Forwarding Reference
7.3 Using std::ref() and std::cref()
7.4 Dealing with String Literals and Raw Arrays
7.4.1 Special Implementations for String Literals and Raw
Arrays
7.5 Dealing with Return Values
7.6 Recommended Template Parameter Declarations
7.7 Summary

8 Compile-Time Programming
8.1 Template Metaprogramming
8.2 Computing with constexpr
8.3 Execution Path Selection with Partial Specialization
8.4 SFINAE (Substitution Failure Is Not An Error)
8.4.1 Expression SFINAE with decltype
8.5 Compile-Time if
8.6 Summary

9 Using Templates in Practice


9.1 The Inclusion Model
9.1.1 Linker Errors
9.1.2 Templates in Header Files
9.2 Templates and inline
9.3 Precompiled Headers
9.4 Decoding the Error Novel
9.5 Afternotes
9.6 Summary
10 Basic Template Terminology
10.1 “Class Template” or “Template Class”?
10.2 Substitution, Instantiation, and Specialization
10.3 Declarations versus Definitions
10.3.1 Complete versus Incomplete Types
10.4 The One-Definition Rule
10.5 Template Arguments versus Template Parameters
10.6 Summary

11 Generic Libraries
11.1 Callables
11.1.1 Supporting Function Objects
11.1.2 Dealing with Member Functions and Additional
Arguments
11.1.3 Wrapping Function Calls
11.2 Other Utilities to Implement Generic Libraries
11.2.1 Type Traits
11.2.2 std::addressof()
11.2.3 std::declval()
11.3 Perfect Forwarding Temporaries
11.4 References as Template Parameters
11.5 Defer Evaluations
11.6 Things to Consider When Writing Generic Libraries
11.7 Summary

Part II: Templates in Depth

12 Fundamentals in Depth
12.1 Parameterized Declarations
12.1.1 Virtual Member Functions
12.1.2 Linkage of Templates
12.1.3 Primary Templates
12.2 Template Parameters
12.2.1 Type Parameters
12.2.2 Nontype Parameters
12.2.3 Template Template Parameters
12.2.4 Template Parameter Packs
12.2.5 Default Template Arguments
12.3 Template Arguments
12.3.1 Function Template Arguments
12.3.2 Type Arguments
12.3.3 Nontype Arguments
12.3.4 Template Template Arguments
12.3.5 Equivalence
12.4 Variadic Templates
12.4.1 Pack Expansions
12.4.2 Where Can Pack Expansions Occur?
12.4.3 Function Parameter Packs
12.4.4 Multiple and Nested Pack Expansions
12.4.5 Zero-Length Pack Expansions
12.4.6 Fold Expressions
12.5 Friends
12.5.1 Friend Classes of Class Templates
12.5.2 Friend Functions of Class Templates
12.5.3 Friend Templates
12.6 Afternotes

13 Names in Templates
13.1 Name Taxonomy
13.2 Looking Up Names
13.2.1 Argument-Dependent Lookup
13.2.2 Argument-Dependent Lookup of Friend Declarations
13.2.3 Injected Class Names
13.2.4 Current Instantiations
13.3 Parsing Templates
13.3.1 Context Sensitivity in Nontemplates
13.3.2 Dependent Names of Types
13.3.3 Dependent Names of Templates
13.3.4 Dependent Names in Using Declarations
13.3.5 ADL and Explicit Template Arguments
13.3.6 Dependent Expressions
13.3.7 Compiler Errors
13.4 Inheritance and Class Templates
13.4.1 Nondependent Base Classes
13.4.2 Dependent Base Classes
13.5 Afternotes

14 Instantiation
14.1 On-Demand Instantiation
14.2 Lazy Instantiation
14.2.1 Partial and Full Instantiation
14.2.2 Instantiated Components
14.3 The C++ Instantiation Model
14.3.1 Two-Phase Lookup
14.3.2 Points of Instantiation
14.3.3 The Inclusion Model
14.4 Implementation Schemes
14.4.1 Greedy Instantiation
14.4.2 Queried Instantiation
14.4.3 Iterated Instantiation
14.5 Explicit Instantiation
14.5.1 Manual Instantiation
14.5.2 Explicit Instantiation Declarations
14.6 Compile-Time if Statements
14.7 In the Standard Library
14.8 Afternotes

15 Template Argument Deduction


15.1 The Deduction Process
15.2 Deduced Contexts
15.3 Special Deduction Situations
15.4 Initializer Lists
15.5 Parameter Packs
15.5.1 Literal Operator Templates
15.6 Rvalue References
15.6.1 Reference Collapsing Rules
15.6.2 Forwarding References
15.6.3 Perfect Forwarding
15.6.4 Deduction Surprises
15.7 SFINAE (Substitution Failure Is Not An Error)
15.7.1 Immediate Context
15.8 Limitations of Deduction
15.8.1 Allowable Argument Conversions
15.8.2 Class Template Arguments
15.8.3 Default Call Arguments
15.8.4 Exception Specifications
15.9 Explicit Function Template Arguments
15.10 Deduction from Initializers and Expressions
15.10.1 The auto Type Specifier
15.10.2 Expressing the Type of an Expression with
decltype
15.10.3 decltype(auto)
15.10.4 Special Situations for auto Deduction
15.10.5 Structured Bindings
15.10.6 Generic Lambdas
15.11 Alias Templates
15.12 Class Template Argument Deduction
15.12.1 Deduction Guides
15.12.2 Implicit Deduction Guides
15.12.3 Other Subtleties
15.13 Afternotes
16 Specialization and Overloading
16.1 When “Generic Code” Doesn’t Quite Cut It
16.1.1 Transparent Customization
16.1.2 Semantic Transparency
16.2 Overloading Function Templates
16.2.1 Signatures
16.2.2 Partial Ordering of Overloaded Function Templates
16.2.3 Formal Ordering Rules
16.2.4 Templates and Nontemplates
16.2.5 Variadic Function Templates
16.3 Explicit Specialization
16.3.1 Full Class Template Specialization
16.3.2 Full Function Template Specialization
16.3.3 Full Variable Template Specialization
16.3.4 Full Member Specialization
16.4 Partial Class Template Specialization
16.5 Partial Variable Template Specialization
16.6 Afternotes

17 Future Directions
17.1 Relaxed typename Rules
17.2 Generalized Nontype Template Parameters
17.3 Partial Specialization of Function Templates
17.4 Named Template Arguments
17.5 Overloaded Class Templates
17.6 Deduction for Nonfinal Pack Expansions
17.7 Regularization of void
17.8 Type Checking for Templates
17.9 Reflective Metaprogramming
17.10 Pack Facilities
17.11 Modules
Part III: Templates and Design

18 The Polymorphic Power of Templates


18.1 Dynamic Polymorphism
18.2 Static Polymorphism
18.3 Dynamic versus Static Polymorphism
18.4 Using Concepts
18.5 New Forms of Design Patterns
18.6 Generic Programming
18.7 Afternotes

19 Implementing Traits
19.1 An Example: Accumulating a Sequence
19.1.1 Fixed Traits
19.1.2 Value Traits
19.1.3 Parameterized Traits
19.2 Traits versus Policies and Policy Classes
19.2.1 Traits and Policies: What’s the Difference?
19.2.2 Member Templates versus Template Template
Parameters
19.2.3 Combining Multiple Policies and/or Traits
19.2.4 Accumulation with General Iterators
19.3 Type Functions
19.3.1 Element Types
19.3.2 Transformation Traits
19.3.3 Predicate Traits
19.3.4 Result Type Traits
19.4 SFINAE-Based Traits
19.4.1 SFINAE Out Function Overloads
19.4.2 SFINAE Out Partial Specializations
19.4.3 Using Generic Lambdas for SFINAE
19.4.4 SFINAE-Friendly Traits
19.5 IsConvertibleT
19.6 Detecting Members
19.6.1 Detecting Member Types
19.6.2 Detecting Arbitrary Member Types
19.6.3 Detecting Nontype Members
19.6.4 Using Generic Lambdas to Detect Members
19.7 Other Traits Techniques
19.7.1 If-Then-Else
19.7.2 Detecting Nonthrowing Operations
19.7.3 Traits Convenience
19.8 Type Classification
19.8.1 Determining Fundamental Types
19.8.2 Determining Compound Types
19.8.3 Identifying Function Types
19.8.4 Determining Class Types
19.8.5 Determining Enumeration Types
19.9 Policy Traits
19.9.1 Read-Only Parameter Types
19.10 In the Standard Library
19.11 Afternotes

20 Overloading on Type Properties


20.1 Algorithm Specialization
20.2 Tag Dispatching
20.3 Enabling/Disabling Function Templates
20.3.1 Providing Multiple Specializations
20.3.2 Where Does the EnableIf Go?
20.3.3 Compile-Time if
20.3.4 Concepts
20.4 Class Specialization
20.4.1 Enabling/Disabling Class Templates
20.4.2 Tag Dispatching for Class Templates
20.5 Instantiation-Safe Templates
20.6 In the Standard Library
20.7 Afternotes

21 Templates and Inheritance


21.1 The Empty Base Class Optimization (EBCO)
21.1.1 Layout Principles
21.1.2 Members as Base Classes
21.2 The Curiously Recurring Template Pattern (CRTP)
21.2.1 The Barton-Nackman Trick
21.2.2 Operator Implementations
21.2.3 Facades
21.3 Mixins
21.3.1 Curious Mixins
21.3.2 Parameterized Virtuality
21.4 Named Template Arguments
21.5 Afternotes

22 Bridging Static and Dynamic Polymorphism


22.1 Function Objects, Pointers, and std::function<>
22.2 Generalized Function Pointers
22.3 Bridge Interface
22.4 Type Erasure
22.5 Optional Bridging
22.6 Performance Considerations
22.7 Afternotes

23 Metaprogramming
23.1 The State of Modern C++ Metaprogramming
23.1.1 Value Metaprogramming
23.1.2 Type Metaprogramming
23.1.3 Hybrid Metaprogramming
23.1.4 Hybrid Metaprogramming for Unit Types
23.2 The Dimensions of Reflective Metaprogramming
23.3 The Cost of Recursive Instantiation
23.3.1 Tracking All Instantiations
23.4 Computational Completeness
23.5 Recursive Instantiation versus Recursive Template
Arguments
23.6 Enumeration Values versus Static Constants
23.7 Afternotes

24 Typelists
24.1 Anatomy of a Typelist
24.2 Typelist Algorithms
24.2.1 Indexing
24.2.2 Finding the Best Match
24.2.3 Appending to a Typelist
24.2.4 Reversing a Typelist
24.2.5 Transforming a Typelist
24.2.6 Accumulating Typelists
24.2.7 Insertion Sort
24.3 Nontype Typelists
24.3.1 Deducible Nontype Parameters
24.4 Optimizing Algorithms with Pack Expansions
24.5 Cons-style Typelists
24.6 Afternotes

25 Tuples
25.1 Basic Tuple Design
25.1.1 Storage
25.1.2 Construction
25.2 Basic Tuple Operations
25.2.1 Comparison
25.2.2 Output
25.3 Tuple Algorithms
25.3.1 Tuples as Typelists
25.3.2 Adding to and Removing from a Tuple
25.3.3 Reversing a Tuple
25.3.4 Index Lists
25.3.5 Reversal with Index Lists
25.3.6 Shuffle and Select
25.4 Expanding Tuples
25.5 Optimizing Tuple
25.5.1 Tuples and the EBCO
25.5.2 Constant-time get()
25.6 Tuple Subscript
25.7 Afternotes

26 Discriminated Unions
26.1 Storage
26.2 Design
26.3 Value Query and Extraction
26.4 Element Initialization, Assignment and Destruction
26.4.1 Initialization
26.4.2 Destruction
26.4.3 Assignment
26.5 Visitors
26.5.1 Visit Result Type
26.5.2 Common Result Type
26.6 Variant Initialization and Assignment
26.7 Afternotes

27 Expression Templates
27.1 Temporaries and Split Loops
27.2 Encoding Expressions in Template Arguments
27.2.1 Operands of the Expression Templates
27.2.2 The Array Type
27.2.3 The Operators
27.2.4 Review
27.2.5 Expression Templates Assignments
27.3 Performance and Limitations of Expression Templates
27.4 Afternotes

28 Debugging Templates
28.1 Shallow Instantiation
28.2 Static Assertions
28.3 Archetypes
28.4 Tracers
28.5 Oracles
28.6 Afternotes

Appendixes

A The One-Definition Rule


A.1 Translation Units
A.2 Declarations and Definitions
A.3 The One-Definition Rule in Detail
A.3.1 One-per-Program Constraints
A.3.2 One-per-Translation Unit Constraints
A.3.3 Cross-Translation Unit Equivalence Constraints

B Value Categories
B.1 Traditional Lvalues and Rvalues
B.1.1 Lvalue-to-Rvalue Conversions
B.2 Value Categories Since C++11
B.2.1 Temporary Materialization
B.3 Checking Value Categories with decltype
B.4 Reference Types

C Overload Resolution
C.1 When Does Overload Resolution Kick In?
C.2 Simplified Overload Resolution
C.2.1 The Implied Argument for Member Functions
C.2.2 Refining the Perfect Match
C.3 Overloading Details
C.3.1 Prefer Nontemplates or More Specialized Templates
C.3.2 Conversion Sequences
C.3.3 Pointer Conversions
C.3.4 Initializer Lists
C.3.5 Functors and Surrogate Functions
C.3.6 Other Overloading Contexts

D Standard Type Utilities


D.1 Using Type Traits
D.1.1 std::integral_constant and
std::bool_constant
D.1.2 Things You Should Know When Using Traits
D.2 Primary and Composite Type Categories
D.2.1 Testing for the Primary Type Category
D.2.2 Test for Composite Type Categories
D.3 Type Properties and Operations
D.3.1 Other Type Properties
D.3.2 Test for Specific Operations
D.3.3 Relationships Between Types
D.4 Type Construction
D.5 Other Traits
D.6 Combining Type Traits
D.7 Other Utilities

E Concepts
E.1 Using Concepts
E.2 Defining Concepts
E.3 Overloading on Constraints
E.3.1 Constraint Subsumption
E.3.2 Constraints and Tag Dispatching
E.4 Concept Tips
E.4.1 Testing Concepts
E.4.2 Concept Granularity
E.4.3 Binary Compatibility

Bibliography
Forums
Books and Web Sites

Glossary

Index
Preface

The notion of templates in C++ is over 30 years old. C++ templates


were already documented in 1990 in “The Annotated C++ Reference
Manual” (ARM; see [EllisStroustrupARM]), and they had been
described before then in more specialized publications. However,
well over a decade later, we found a dearth of literature that
concentrates on the fundamental concepts and advanced techniques
of this fascinating, complex, and powerful C++ feature. With the
first edition of this book, we wanted to address this issue and
decided to write the book about templates (with perhaps a slight
lack of humility).
Much has changed in C++ since that first edition was published in
late 2002. New iterations of the C++ standard have added new
features, and continued innovation in the C++ community has
uncovered new template-based programming techniques. The
second edition of this book therefore retains the same goals as the
first edition, but for “Modern C++.”
We approached the task of writing this book with different
backgrounds and with different intentions. David (aka “Daveed”), an
experienced compiler implementer and active participant of the C++
Standard Committee working groups that evolve the core language,
was interested in a precise and detailed description of all the power
(and problems) of templates. Nico, an “ordinary” application
programmer and member of the C++ Standard Committee Library
Working Group, was interested in understanding all the techniques
of templates in a way that he could use and benefit from them.
Doug, a template library developer turned compiler implementer and
language designer, was interested in collecting, categorizing, and
evaluating the myriad techniques used to build template libraries. In
addition, we all wanted to share this knowledge with you, the reader,
and the whole community to help to avoid further misunderstanding,
confusion, or apprehension.
As a consequence, you will see both conceptual introductions with
day-to-day examples and detailed descriptions of the exact behavior
of templates. Starting from the basic principles of templates and
working up to the “art of template programming,” you will discover
(or rediscover) techniques such as static polymorphism, type traits,
metaprogramming, and expression templates. You will also gain a
deeper understanding of the C++ standard library, in which almost
all code involves templates.
We learned a lot and we had much fun while writing this book. We
hope you will have the same experience while reading it. Enjoy!
Acknowledgments for the Second
Edition

Writing a book is hard. Maintaining a book is even harder. It took us


more than five years—spread over the past decade—to come up
with this second edition, and it couldn’t have been done without the
support and patience of a lot of people.
First, we’d like to thank everyone in the C++ community and on
the C++ standardization committee. In addition to all the work to
add new language and library features, they spent many, many
hours explaining and discussing their work with us, and they did so
with patience and enthusiasm.
Part of this community also includes the programmers who gave
feedback for errors and possible improvement for the first edition
over the past 15 years. There are simply too many to list them all,
but you know who you are and we’re truly grateful to you for taking
the time to write up your thoughts and observations. Please accept
our apologies if our answers were sometimes less than prompt.
We’d also like to thank everyone who reviewed drafts of this book
and provided us with valuable feedback and clarifications. These
reviews brought the book to a significantly higher level of quality,
and it again proved that good things need the input of many “wise
guys.” For this reason, huge thanks to Steve Dewhurst, Howard
Hinnant, Mikael Kilpel¨ainen, Dietmar Kühl, Daniel Krügler, Nevin
Lieber, Andreas Neiser, Eric Niebler, Richard Smith, Andrew Sutton,
Hubert Tong, and Ville Voutilainen.
Of course, thanks to all the people who supported us from
Addison-Wesley/Pearson. These days, you can no longer take
professional support for book authors for granted. But they were
patient, nagged us when appropriate, and were of great help when
knowledge and professionalism were necessary. So, many thanks to
Peter Gordon, Kim Boedigheimer, Greg Doench, Julie Nahil, Dana
Wilson, and Carol Lallier.
A special thanks goes to the LaTeX community for a great text
system and to Frank Mittelbach for solving our LATEX issues (it was
almost always our fault).

David’s Acknowledgments for the Second


Edition
This second edition was a long time in the waiting, and as we put
the finishing touches to it, I am grateful for the people in my life
who made it possible despite many obligations vying for attention.
First, I’m indebted to my wife (Karina) and daughters (Alessandra
and Cassandra), for agreeing to let me take significant time out of
the “family schedule” to complete this edition, particularly in the last
year of work. My parents have always shown interest in my goals,
and whenever I visit them, they do not forget this particular project.
Clearly, this is a technical book, and its contents reflect knowledge
and experience about a programming topic. However, that is not
enough to pull off completing this kind of work. I’m therefore
extremely grateful to Nico for having taken upon himself the
“management” and “production” aspects of this edition (in addition
to all of his technical contributions). If this book is useful to you and
you run into Nico some day, be sure to tell him thanks for keeping us
all going. I’m also thankful to Doug for having agreed to come on
board several years ago and to keep going even as demands on his
own schedule made for tough going.
Many programmers in our C++ community have shared nuggets
of insight over the years, and I am grateful to all of them. However,
I owe special thanks to Richard Smith, who has been efficiently
answering my e-mails with arcane technical issues for years now. In
the same vein, thanks to my colleagues John Spicer, Mike Miller, and
Mike Herrick, for sharing their knowledge and creating an
encouraging work environment that allows us to learn ever more.

Nico’s Acknowledgments for the Second


Edition
First, I want to thank the two hard-core experts, David and Doug,
because, as an application programmer and library expert, I asked
so many silly questions and learned so much. I now feel like
becoming a core expert (only until the next issue, of course). It was
fun, guys.
All my other thanks go to Jutta Eckstein. Jutta has the wonderful
ability to force and support people in their ideals, ideas, and goals.
While most people experience this only occasionally when meeting
her or working with her in our IT industry, I have the honor to
benefit from her in my day-to-day life. After all these years, I still
hope this will last forever.

Doug’s Acknowledgments for the Second


Edition
My heartfelt thanks go to my wonderful and supportive wife, Amy,
and our two little girls, Molly and Tessa. Their love and
companionship bring me daily joy and the confidence to tackle the
greatest challenges in life and work. I’d also like to thank my
parents, who instilled in me a great love of learning and encouraged
me throughout these years.
It was a pleasure to work with both David and Nico, who are so
different in personality yet complement each other so well. David
brings a great clarity to technical writing, honing in on descriptions
that are precise and illuminating. Nico, beyond his exceptional
organizational skills that kept two coauthors from wandering off into
the weeds, brings a unique ability to take apart a complex technical
discussion and make it simpler, more accessible, and far, far clearer.
Exploring the Variety of Random
Documents with Different Content
Ádám. Mi az? Most te lettél szomorú, mikor én végre vidám
vagyok?
Gál. Dehogy. Fogadni mernék, hogy ő megint…
Turai. Megnyerted a fogadást. Megint más probléma érdekel…
Gál. Színház!
Turai. Úgy van. Mint mindig.
Gál. De hát ez már aztán…
Turai. Hát kérem. Tegnap, mikor megjöttünk, azt mondtam:
milyen nehéz egy darabot elkezdeni. Most azon tünődöm, milyen
nehéz egy felvonást befejezni.
Gál. Gyere inkább enni.
Turai. Ne viccelj. Ez most nagyon izgat engem. Vegyük például
megint a mi esetünket. Mi most egy katasztrófa után vagyunk. De
hála Istennek kiálltuk, összeszedtük magunkat. Elhatároztuk, hogyan
fogunk viselkedni, most egy kicsit fellélegzettünk. A felvonásnak
tulajdonképpen vége. Hát ha ez itt most megint színpad volna és ez
a három figura valami darabban állna itt ezekután az események
után – hogy végeznéd be ezt a felvonást?
Gál. Hát be van végezve!
Turai. Igen. De mielőtt a függöny lemegy, a legvégére még kell
valami. Úgynevezett felvonásvég. Egy érdekes, izgató perc. Egy
csattanó! Egy felvonásvég! Felvonásvég! Legyen befejezve és mégse
legyen vége. A publikum érdeklődése meglepő módon legyen
felfüggesztve. Na kedves pajtás, annyi sok darab híres társszerzője!
Hogy fejeznéd te be ennek a mi szomorú esetünknek ezt a… hogy
úgy mondjam, második felvonását?
Gál. Megmondom. Nagyon könnyű. Gyere ide. Ülj le ide
harmadiknak. Turai leül az asztalhoz. Hát kérem. Én szeretem a
hangulatos, kellemes, könnyedén franciás felvonásvéget, aminek egy
kicsit mondain szinezete van. Tehát a három jó barát reggelihez ül.
Étkezés a színpadon mindig kedves dolog. A vihar elmult, az ég
ugyan még felhős, de már a nap sugarai csillogni kezdenek a
szíveken. Most ezt a hangulatot, mint mondani szokták, «kicsengeni
hagyni». Kis szünet. Nagyon elegánsan. Kérlek, parancsoljatok, itt a
reggeli! Mindegyik evőeszközéhez nyul. Ő halkan, szinte súgva
folytatja. Még egy kicsit mindenki a kiállott fájdalomra gondol. Így.
És most nagyon elegánsan… poharával kezében… egy szellemes
aforizma… Ádámhoz. Fiatal barátom! Te ma lettél férfivé, mert
férfivé bennünket az asszonyoknál nem az első győzelem avat,
hanem az első vereség! Felemeli poharát. Éljen a hűtlen
menyasszony, aki egy gyermekből férfit csinált! Koccintanak. Úgy. És
most… Mosolyogva, édeskésen… Függöny!
Egyszerre teszik le a három poharat az asztalra, a nélkül, hogy
ittak volna. Gál diadalmasan mosolyog.
Turai szárazon. Nagyon rossz. Igazán nagyon rossz. A pillanat
nem elég érdekes. Úgy külső formában elég csinos, kellemes, sőt
elegáns is, de nem elég érdekes. Ádámhoz. Hogy csinálnád te?
Ádám keserűen mosolyogva. Én? A mostani helyzetemben?
Turai. Igen. Mondd meg. Mutasd meg.
Ádám idegesen, komolyan, majdnem fenyegetőleg. Jó, én
megmutatom nektek. Felkel. Nem, én nem koccintok veletek!
Eldobja a poharát. Énnekem ez a nő nem futó pillanat volt az
életemben. Nekem ez a nő az első nagy szenvedélyem. Én
megteszem nektek azt a szívességet, hogy uralkodom magamon,
amíg birok. De a gondolat, hogy én az életemet adtam neki és ő egy
más emberrel szerelmes szavakat beszél, hogy egy más ember
érintheti a testét… hogy egy más emberrel éjszaka szerelmeskedik
és csókolózik, ez mind olyan rettenetesen fájdalmas és
elviselhetetlen számomra, hogy ennek csak egyetlen megoldása
van… zsebébe nyúl, kihúzza revolverét.
Turai hirtelen odaugrik hozzá. Ohó! Ohó! Halt!
Ádám dulakodva vele. Nem! Nem! Hagyj!
Gál szintén odarohan izgatottan. Na! Csak nem komolyan…
Ádám mindkettővel dulakodva fájdalmasan kiált. Hagyjatok!
Hagyjatok meghalni!
Turai elvette tőle a revolvert. Most nézegeti a fegyvert. Ádám
némán, sápadtan, dacosan áll. Gál Ádám haját simogatja.
Turai a revolverrel a kezében. Mi volt ez? Mit akartál?
Ádám fájdalmasan mosolyogva. Hát… felvonásvéget… akartam
csinálni. Leül. És most… azt hiszem elég érdekes a pillanat… Tehát…
halkan, mosolyogva. Függöny!
Turai. Rossz. Nagyon rossz. Zsebredugja a revolvert. Nagyon,
nagyon rossz. Először is halál nem passzol egy második felvonás
végére. Halálnak csak a legvégén van hatása. És a jelenet nem
érdekes, hanem brutális. A pillanat ijesztő és mégis érdektelen.
Feszültség kell! Érdekesség kell, mielőtt a függöny lemegy.
Gál. Hát mondd már meg, hogy hogyan csinálnád te.
Turai. Azt hiszem, sokkal jobban.
Ádám. Na erre igazán kiváncsi vagyok.
Turai. Kérem. A telefonhoz megy. Halló! Kérem Balogh Annie
őnagysága szobáját.
Odaát telefoncsengés.
Annie odaát. Halló!
Turai. Halló, Annie?
Annie. Igen. Ki beszél?
Turai. Nem ismeri meg a hangomat? Turai beszél.
Annie. Turai? Turai Sándor?
Turai. Igen. Kezét csókolom.
Annie. Nahát ez… Hát maga itt van? Honnan beszél?
Turai. Itt vagyok a kastélyban. A szomszéd szobában. Maga
mellett. Négyes szám. Ma éjjel jöttünk meg autón. Itt vagyunk mind
a hárman. Elhoztuk a kész operettet!
Annie. Szenzációs! Ez aztán a meglepetés!
Turai. Nem akartuk korán reggel zavarni. De most mégis arra kell
kérnem, hogy jöjjön át egy pillanatra ide. Visszateszi a kagylót, az
ajtóhoz megy. Ádám és Gál feláll, meglepetten.
Annie az átjáróajtón boldogan rohan be. Hát ez szenzációs
meglepetés! Milyen kedves tőletek! Albert! Berti! Üdvözlés Ádámmal.
Szívem! Egyetlen drágám! Nahát ez igazán meglepetés volt! Kezét
csókra nyujtja Gálnak és Turainak. Turai! Sándor! Három hónapja
nem láttam! Le van sülve! Megfiatalodott! Mutassa magát! Nahát…
pompás színben van! És Gál! Hozta Isten! Hát ez igazán aranyos
maguktól! Itt már olyan türelmetlenül várják magukat! Mikor
érkeztek?
Turai nagyon komolyan. Pardon. Üljön le Annie. Benéz Annie
szobájába. Ah! Kedves mester! Almády úr! Tessék, tessék, tessék
csak bejönni. Legyen szerencsénk.
Almády belép, idegesen, rosszat sejtve. Jóreggelt.
Turai. Maga is itt van, annyi sok év után újra?
Almády. Itt utazgattam… autózgattam, éppen csak köszönteni
akartam a házigazdát, de erőszakkal lefogtak és itt tartottak.
Tudniillik ma van a nagy hangverseny. Hát… hogy lépjek fel…
Annie erőltetett jókedvvel, de ijedten. Nahát ilyen meglepetés!
Turai. Bocsánat, hogy zavartam önöket és most talán elrontom a
viszontlátásnak ezt a napsugaras hangulatát, de nekem nagyon
fontos mondanivalóm volna.
Annie. Na! Csak nem komoly?
Turai. De igen. Sőt talán több is mint komoly.
Annie ijedten ül le.
Turai Almádyhoz. Tessék leülni.
Almády ijedten. Nem! Köszönöm nem.
Turai. Hát kérem. Mi megérkeztünk ide ma éjszaka. Nagy
szünetekkel beszél… És most… hárman… együtt ültünk itt a
reggelinél. Gálhoz. Ugyebár?
Gál kíváncsian. Igen…
Ádám. Na és?
Turai. Csak nyugodtan kérem. Itt ülünk, ugyebár, kedélyesen…
hangot változtatva, nagyon komolyan. Bocsássanak meg, de
mindnyájukat határozottan arra kérem, hogy amit most mondani
fogok, azt fogadják nyugodtan és ne veszítsék el a hidegvérüket.
Annie ijedten. De hát az Istenért…
Ádám nyugtalanul. De hát mi az?…
Turai. Kérem! Hallgatást parancsoló mozdulatot tesz. Halotti
csend. Amit én most itt végre ki fogok mondani, az valószínűleg
mindnyájunk, mind az ötünk élete további folyására döntő
jelentőségű lesz. De hát most már el vagyok szánva! Ünnepélyesen.
Kedves Annie! Én önt ezennel… Abbahagyja. Halotti csend. Aztán
nagyon egyszerűen, Gálhoz. Ez csak érdekes pillanat?
Gál nagyon izgatottan. Igen. Nos?
Turai nagyon egyszerűen. Hát… most menjen le a függöny!
mosolyogva nyujtja karját Annienak… tudniillik felvonásvégekről
vitatkoztunk… lassan a bejáratajtó felé vezeti Anniet, mialatt a
megrémült társaság fellélegzik… hogy hogyan kell a legegyszerűbb
eszközökkel érdekes felvonásvéget csinálni… ez tudniillik kérem… a
függöny legördül, miközben tovább beszélve kivonulnak.
Gál égnek emelt kezekkel. Ez már mánia nála… Színház!
Almády. Micsoda agyvelő!
FÜGGÖNY.
HARMADIK FELVONÁS.

Ugyanez a szoba, ugyanaznap este nyolc órakor. A titkár, csinos,


élénk fiatalember, épp egy széket tol a helyére. A bútorok most a
következőképpen állanak: balról elől, a közönséggel szemben a két
fotel, köztük kicsiny asztalka. Jobbról elől a nagy kanapé, mellette
szék. Az asztal nincs a színpadon. A titkár még egy utolsó pillantást
vet erre a bútorrendre, mikor belép a lakáj, aki ezüst tálcán egy
könyvet, egy őszibarackot és két levelet hoz. A lakáj nagy díszben
van, csillog az aranytól.
Titkár. Tegye le azt oda valahová.
Lakáj. Igenis titkár úr. Leteszi a tálcát.
Titkár. Nyolc órára mondták a próbát és még senki sincs itt. Hány
óra magánál kedves Devornié?
Lakáj. Pont nyolc.
Titkár. A vacsorát pontosan kezdik?
Lakáj. Pont kilenckor. A neuf heures, précises.
Titkár. Merci.
Lakáj. Pas de quoi, Monsieur le Secrétaire.
Almády belép frakkban.
Titkár. Ah, van szerencsém. Ez aztán a pontosság, művész úr.
Pont nyolc.
Almády rosszkedvűen. Jóestét.
Titkár. Művész úr az első a porondon.
Almády. Mindjárt jönnek a többiek is. Most lettek készen az
átöltözéssel.
Titkár. Csodás volt ma a vadászat. Remekül sikerült! Művész úr
bizonyára szintén nagyon élvezte.
Almády gőgösen. Én nem vadásztam.
Titkár. Ah! Hát hol volt?
Almády. A szobámban. Írtam.
Titkár. Szabadna kérdeznem, mit méltóztatott írni?
Almády. Nem szabadna kérdeznie. Hogy másról beszéljen.
Összesen egy óra időnk van a próbára. A hangverseny rögtön
vacsora után kezdődik?
Titkár. Feketekávé után.
Almády. És a mi számunk?
Titkár. Az utolsó. Pièce de résistance. A fotelekre mutat. És ez itt
a próbaszínpad. A művésznő azt mondta, hogy ehhez a darabhoz
nem kell más, mint két díszes fotel és egy díszes asztalka. Állítgatja
a bútorokat. A stílus: tizenötödik Lajos. Ez megfelel?
Almády. Nekem bármelyik Lajos megfelel.
Titkár. Engedjen meg egy kérdést, művész uram. Mondja: miért
nincs tizenhetedik Lajos? Van egy tizenhatodik Lajos és egy
tizennyolcadik Lajos. Miért nincs tizenhetedik?
Almády. Kérdezze meg egy bútorkereskedőtől.
Titkár. Már megkérdeztem. De azok csak a tizenhatodikig tudják.
Onnan kezdve sejtelmük sincs a többiről. Homlokát törölgetve.
Nagyon izgatott vagyok, művész úr.
Almády. Miért?
Titkár. Hát ez az ünnepség ma, hangverseny, tánc! Az egész
felelősség az enyém. Mindig én rendezem a gróf úrnak ezeket az
estélyeit! Titkárnak már ez a sorsa. Én itt rendező vagyok,
díszletmester, súgó, kottalapozó, hölgykísérő, virágátnyujtó… sőt én
vagyok a klakkvezér is, minden én vagyok. Rajongok a művészetért,
művész uram! A lakájhoz, akit rajtakap a vigyorgáson. Ön
eltávozhatik, Devornié.
Lakáj: Oui, Monsieur le Secrétaire. Kimegy.
Titkár. Művész úrnak nincs jó kedve.
Almády. Eltalálta. Zúg a fejem a sok tanulástól.
Titkár. Jó a szerepe?
Almády. A szerepem? Undorító.
Titkár. Ne mondja. Miért játssza akkor?
Almády. Kényszer.
Titkár. Kényszer?
Almády. Kollégialitás.
Titkár. Na majd a mi vadásztársaságunk kárpótolni fogja művész
urat tapssal. Meglátja, milyen lelkes közönségünk van. Itt a
legtehetségtelenebb művészeknek is sikerük van.
Almády. Köszönöm.
Titkár. Pardon. Nem úgy értettem.
Belép Annie nagy estélyi ruhában és Ádám frakkban.
Annie. Úgy látom, már együtt vagyunk.
Almády némán meghajol.
Titkár Anniehoz rohan. Kezét csókolom! Ádámhoz Lehóczki, titkár.
Ádám. Ádám.
Annie a titkárhoz. Jegyezze meg ezt a nevet. Ő írja a zenét a mi
új operettünkhöz.
Titkár. Ah, mester!
Ádám. Na, az még nem vagyok!
Annie. Hát kezdjük a próbát?
Almády. Tulajdonképpen meg kellene várnunk Turai urat. Hisz oly
szíves volt és megígérte, hogy segít nekünk.
Annie. Mindjárt itt lesz. Hol a súgó?
Titkár. Itt vagyok.
Annie. Itt a darab. Átadja a kéziratot.
Titkár büszkén. Jól rendeztem el a próbaszínpadot?
Annie. Elragadóan. Ádámhoz. Most megint rosszkedvű.
Ádám. Szó sincs róla. Bocsásson meg, de mint már mondtam,
rettenetesen kifárasztott ez az autóutazás. Nem gyerekjáték: Bécsből
egy túrában ide le a Földközi-tengerhez. Az éjjel nem tudtam
aludni… a kimerültségtől. Fáradt vagyok, ez az egész. Higyje el. A
titkár idegeskedik. Na kezdjük, nézze, a titkár úr már türelmetlen.
Annie a titkárhoz. Na mi az?
Titkár. Nagyon izgatott vagyok, művésznő.
Annie. Maga? Miért?
Titkár. Mert titkár vagyok.
Annie. Hát csak nyugalom, kérem. Úgyis olyan nehéz a dolgunk.
És én nagyon ideges vagyok. Ádámhoz, aki leült. Mi az? Maga jelen
akar lenni a próbán?
Ádám. Igen.
Annie nagy zavarban. Ugyan kérem… ez untatni fogja. Egy ostoba
kis francia darab. Elég, ha majd vacsora után hallja.
Ádám. Meg kellett ígérnem Turainak, hogy itt maradok és segítek
maguknak, amíg ő jön. És én mindig szentül megtartom, amit nekik
ígérek.
Annie. Jó. Ahogy akarja. Nagyon idegesen. Hát kezdjük, kérem.
Hol vannak a kellékek?
Titkár. Minden megvan. A tálcára mutat. Ahol én vagyok a
kellékes! Egy könyv, két levél és egy őszibarack.
Annie elveszi a könyvet és a levelet. A többi a magáé, Almády.
Almády zsebredugja a barackot és a másik levelet.
Annie. És most gyerünk, kezdjük el a főpróbát. A grófné, az én
vagyok… Egyedül van a színpadon. Fotelben ülök és regényt olvasok.
Leül. Maga nincs bent, Almády, csak később jön.
Almády hátramegy, elbújik valahol.
Titkár. Mehet?
Annie. Ne kérdezzen annyit! Mehet!
Titkár súg neki. «Csinosan bútorozott szalon.»
Annie. Micsoda?
Titkár súgva. «Csinosan bútorozott szalon tizenötödik Lajos
stílusában.»
Annie. Szerencsétlen! Hiszen ezt nem kell súgni!
Titkár. Nem? Én eddig mindig az ilyet is súgtam.
Annie. Ezt a kárpitosnak kell súgni, az előadás előtt. A színésznek
csak azt, amit beszél.
Titkár. Nahát ez érdekes. Bután bámul a füzetbe.
Almády előrejön. Mi az?
Annie. A titkár úr nem tud súgni.
Ádám elveszi tőle a füzetet. Adja ide. Majd én súgok. Tessék
kezdeni.
Annie és Almády egyszerre. Nem! Nem!
Annie. Maga ne súgjon.
Ádám. Miért?
Annie. Mert nem akarom.
Ádám. Miért nem akarja?
Titkár sértődötten, gúnyosan. Úgylátszik, ez megalázó
foglalkozás. Tessék csak visszaadni nekem.
Ádám. Nem, kérem, maga idegessé teszi őket.
Titkár. Én teszem idegessé őket? Ők tesznek idegessé engem.
Ádám. Na nyugodjék meg kérem. Majd én súgok most itt a
próbán, maga figyelje meg, hogy hogy kell csinálni, aztán este az
előadáson majd maga súg. Jó?
Titkár mélyen megsértve. Kérem.
Annie a titkárhoz. Most megsértődik?
Titkár. Én mindig, kérem. De utána rögtön kibékülök. Titkár
vagyok.
Annie. Akkor kezdjük. Almádyhoz. Menjen ki, kérem. A grófné a
fotelben ül és olvas. Veszi a könyvet.
Csend. Almády elbújik.
Ádám súgva. «Ah milyen édeskés…»
Annie szerepét mondva. Ah milyen édeskés ez a regény. Becsukja
a könyvet. Minden regény egyforma. A férj szereti a feleségét. A
feleség mást szeret. A férj rájön és botrányt csinál. Vagy elkergeti a
feleségét vagy megbocsát neki.
Ádám súg. «Ah de mit csináljak…»
Annie. Ah de mit csináljak? Férjem, a gróf, kilovagolt és így
egyedül oly hosszúak ezek a délutánok. Ha ezek nem volnának,
tűrhető volna az élet ebben az ősrégi kastélyban. Itt, oly messze
Párizstól, a normandiai erdők és mezők közepette.
Ádám súg. Lépések…
Almády dobog a lábával.
Annie. Ah, lépéseket hallok! Csak nem az uram? Hiszen ő
nyergeltetett és azt mondta, hogy ellátogat Benoithoz, hűséges öreg
bérlőnkhöz.
Almády előrejön, vésztjóslóan. Asszonyom!
Ádám súgva. «Na mi az, miért oly feldúlt…»
Annie. Na mi az? Miért oly feldúlt, gróf?
Almády. Hogy miért vagyok olyan feldúlt? Mindjárt meg fogja
tudni grófné, oly igaz, mint hogy a nevem…
Ádám súg. «Maurice du Veyrier…»
Almády… mint hogy a nevem gróf Maurice du Veyrier de la Grande
Contumace Saint Emilion, hogy ön azonnal meg fogja tudni
feldúltságom okát.
Annie. Ön rámijeszt, Maurice!
Almády. Önre saját bűntudata ijeszt rá, asszonyom!
Ádám súgva. «Ön engem megcsal asszonyom!»
Annie nagyon idegesen néz Ádámra.
Almády nagyon idegesen. Ön engem megcsal, asszonyom! Az
idegeskedő Anniehoz. Mi az? Mi baja?
Annie. Semmi. Kicsit ideges vagyok. Folytassuk.
Almády. Ön engem megcsal asszonyom! Már régóta élek a
gyanúperrel. De most végre a kezem között van a bizonyíték. Igen
igen! Persze ön azt hiszi rólam, hogy én… én…
Ádám súg. «… én hiszékeny vagyok, engem könnyű becsapni…»
Turai és Gál frakkban belép.
Ádám Almádyhoz. Na, miért nem mondja? Hangosabban súg,
ezáltal azt a benyomást keltve, mintha valóságban beszélne
Almádyhoz. «… én hiszékeny vagyok, engem könnyű becsapni,
nekem bármit be lehet adni!»
Turai rémülten közeledik hozzá. Mi az?
Ádám. Csend! Ismét súgva. «Én hiszékeny vagyok, engem könnyű
becsapni…»
Turai fellélegzik. Ja úgy! Elveszi tőle a füzetet. Add ide.
Ádám. Miért? Anniehoz. Nem jól súgok?
Annie és Almády egyszerre. Nem!
Ádám. Nahát, ez hallatlan!
Titkár. Velem se voltak megelégedve.
Ádám. De hát mi volt a hiba?
Turai. Ne kérdezz annyit. Leül Ádám helyére. Átveszem a munkát.
Annie nagyon idegesen. Ez mind azért van, mert maga nem
pontos. Azért van az egész.
Ádám. De hát mi van? Miért ez a nagy izgalom? Nem történt
semmi!
Turai. Hadd fiam, ahhoz te nem értesz. A színész ideges, mikor
próbál. Neked ez a szöveg új, de ők már tudja Isten hányadszor
mondják.
Ádám oldalt leül.
Titkár Ádámhoz. Mindenkit megsértenek.
Turai a füzetbe néz. Hát… gyerünk, mondják mégegyszer az
utolsó mondatot.
Almády nagyon folyékonyan. Ön engem megcsal, asszonyom! Már
régóta élek a gyanúperrel. De most végre a kezem között van a
bizonyíték. Igen, igen! Persze ön azt hiszi rólam, hogy én hiszékeny
vagyok, engem könnyű becsapni, nekem bármit be lehet adni! Nem
asszonyom. Most az egyszer elszámította magát.
Turai. De hisz ez remekül megy.
Annie. Mert nagyszerű súgónk van.
Ádám. De hiszen egy szót se súg!
Annie. Az épp a nagyszerű benne.
Titkár. Hagyja mester, mi ezt sohse fogjuk megtanulni.
Ádám. Úgylátszik, nem.
Turai. Tovább.
Almády. Eddig is gyanakodással néztem ismételt sétalovaglásait a
szomszéd birtokossal, François Gilette de la Tour d’Auvergne
márkival, akivel naponta órákig üget a Duvernois Sur Saône-tól Saint
Sulpice de la Grande Parmentière felé vezető úton.
Annie. Oh ez az aljas gyanúsítás!
Almády. Egy szót se, asszonyom! Zsebemben a bizonyíték!
Hálátlan gyermek! Ki volt ön, mikor nőül vettem? Atyja, Pierre-Jean
Bourmond de la Seconde-Chaumière-Rambouillet dandártábornok,
elesett Grande Lagruyère Sur Marne mellett, és ön mint kis varrónő
nyomorban élt anyjával Sainte Geneviève falucskában, a Seine et
Oise départementban. Én önnek, asszonyom, nevet, rangot és
vagyont adtam, én önt du Veyrier de la Grande Contumace Saint
Emilion grófnévá tettem, ráirattam nemcsak Pardubien Grand-
Amanoir-i birtokomat, hanem még két kastélyomat is Challanges-
Débicourt de la Romanéeban és Rivalieux-Quandamouzières Sur
Ventera aux Alpes Maritimesban. Abbahagyja, idegesen.
Turai. Na, mi az?
Almády. Rettenetes ez a sok francia név.
Turai vállat von. Mit csináljak?
Almády. Szükség van erre?
Turai a füzetre mutat. Benne van.
Almády. De megőrülök, amíg bebiflázom ezt a sok kilométeres
nemesi és helységnevet. És mind az én szerepemben vannak!
Turai nyugodtan. Épp azért tessék önnek őket megtanulni.
Almády fuldokolva a dühtől. Rémes! Legalább ezt a második
kastélyt hagyjuk ki.
Turai hidegen, mint egy hóhér. Nem lehet. Ha ez a gróf csak egy
kastélyt ajándékoz a feleségének, akkor nem olyan felháborító az,
hogy a nő megcsalja. Egy kastélynál még elcsúszik az ilyen. Három
kastélynál is megcsalhatja, mert annyit már csak egy balek ad egy
nőnek. Épp pont kettő kell. Ez a középút. Ezt nevezzük éppen okos
francia színdarabírásnak. Gyerünk tovább.
Almády sóhajtva. Grófnévá és gazdaggá tettem önt. És a hála? Ön
megcsal, igenis megcsal a szomszédommal, Jean François Gilette de
la Tour d’Auvergne márkival, Périgord des Champignons és Saint
Sulpice de la Grande Parmentière urával. A fene egye meg. A bámuló
Turaihoz. Ezeket a hosszú neveket. Bocsánat.
Turai. De hát kérem, ezek francia emberek, mit kíván, hogy hogy’
hívják őket?
Almády. Hogy? Például: Briand. Briand! Az is francia.
Annie idegesen. Gyerünk tovább. – Elég volt, gróf! Nem tűröm
tovább ezt a megalázó vádbeszédet! Ön rágalmazza azt a nőt, aki az
ön nevét viseli.
Almády Turaihoz. Ez nem igazság, kérem.
Turai. Micsoda?
Almády. Énnekem mindig ki kell mondanom azt az egész nevet és
ő csak azt mondja: «Az ön nevét».
Turai fagyosan. Tovább.
Almády. Még egy szó asszonyom és előkerül a bizonyíték!
Annie teatrálisan nevetve. Hahaha! Bizonyíték? Kacagnom kell!
Almády. Ajkára fogom fagyasztani ezt a kacagást! Előhúzza
zsebéből az őszibarackot. Itt a bizonyíték!
Annie tragikus sikoltással. Ah! A barack!
Almády az asztalra teszi a barackot. Igenis a barack, asszonyom!
Az első őszibarack, amely simarineux-i gyümölcsös kertem
féltveőrzött, koránérő, törpe keletindiai barackfáján elsőnek termett s
ezzel egész Franciaország minden őszibarackját megelőzte! Ön tudja,
hogy szenvedélyes gyümölcskertész vagyok, ön tudja, hogy ezt a
barackot már virágkora óta ápolom, gondozom, naplót vezetek róla,
úgy várom, mint a messiást! És mi történik? Ma délután kilovagolok
s midőn nyugodtan poroszkálok ugyancsak a Duvernois Sur Saône-
tól a Saint Sulpice de la Grande Parmentière felé… Turaira néz.
Turai fagyosan… vezető úton…
Almády mérgesen… vezető úton, kit látok ott gyalogszerrel
baktatni? Juliettet, az ön komornáját. Megszólítom, zavartan dadog.
Megkérdezem tőle, hová megy. Megijed, sírva fakad és válaszol:
«Úrnőm küldött François Gilette de la Tour d’Auvergne márkihoz.» Az
ördög vigye el! Turaira néz.
Turai. Jó jó. Ez most benne van.
Almády. Az ördög vigye el, mondom, miért küldte magát úrnője a
márkihoz? Jobban megnézem, látom, hogy kis csomagot szorongat
kezében. Elveszem tőle, kibontom, hát… a barackra mutat… ez volt
benne! A barackok királya, a primeurök primeurje, az én
büszkeségem, az első simarineux-i fajbarack, amelyet úgy ápoltam,
mintha gyermekem lett volna. És ez még nem minden, asszonyom!
Íme, a gyümölcs mellett volt ez a levél! Kiveszi zsebéből a levelet és
felolvassa. «Édesem! Ez az első barack, amely az idén
Franciaországban megérett. Neked küldöm, edd meg áhitattal». Az
orra alá tartja a levelet. Íme!
Annie. Mit csináljak vele? Szagoljam meg?
Almády. Igen. Mert ha az írását letagadná, a parfümjét,
asszonyom, azt nem tagadhatja le. Vagy letagadja?
Annie. Nem.
Almády. Ah! Tehát bevallja!
Annie. Be.
Almády. Ön küldte neki ezt a barackot?
Annie. Én.
Almády Turaihoz. Ez igazságtalanság, kérem. Nekem méteres
mondataim vannak és az ő szerepe csupa rövid szó: «Nem! Be! Én!»
Turai. Úgy van. Sardou ezzel a rövid beszédmodorral szokta
jellemezni darabjaiban az ő híres asszonyi alakjait. Gyerünk tovább.
Almády folytatja szerepét. Tehát tőlem elfogadni szerelmemet,
nevemet, rangomat, birtokomat, két kastélyomat – és ezzel szemben
a legkedvesebb gyümölcsömet elküldeni a szeretőjének!
Annie színpadias sikoltással. Ah! Ezt nem tűröm! Vonja vissza ezt
a szót!
Almády. Talán nem szeretője a márki?
Annie. Nem!
Almády színpadiasan, keserűen felkacag. Hahaha! Asszonyom, én
kertész vagyok, Franciaország első amateurkertésze, a párizsi
gyümölcsklub elnöke. Én tudom, hogy ilyen becses ritkaságot csak
annak küld az ember, akit szeret. Én önt megvetem, asszonyom.
Annie. Ön tehát megvetendőnek tartja, amit tettem?
Almády. Úgy van.
Annie. Köszönöm. Akkor most még csak egyetlen kérdésemre
feleljen. Az idén, kora tavasszal, kinek küldte el simarineux-i
kertészete másik büszkeségét, az első kosár koránérő cseresznyét?
Almády zavartan. Anyámnak. Az anyagrófnénak.
Annie. Az anyagrófnénak? Hát majd én is mutatok magának
valamit. Ha önnél van egy érdekes levél, nálam is van egy. Kebléből
levelet vesz elő, orra alá tartja. Szagolja meg! Ezt a parfümöt is
ismeri?
Titkár. Őrült érdekes kezd lenni! Igazi Sardou!
Annie. Csak olvassa el! Remélem, az írást ismeri.
Almády kezében a levél. Ismerem.
Annie. Ez a parfüm és ez az írás Emilienne kisasszonyé, a Folies
Bergères primaballerinájáé, akit ön barátságával és protekciójával
tüntet ki.
Almády. Hogy kerül önhöz ez a levél?
Annie. Ahhoz semmi köze. A levél olyan, mint a kilőtt nyílvessző:
nem lehet tudni, hol áll meg.
Titkár Ádámhoz, tapsolva. Aforizma! Szellemesség!
Annie. Csak olvassa.
Almády olvas. «Édes kutyukám! Ma reggel az én rozoga öreg
grófom…»
Annie. Csak olvassa. Így ír önről az imádottja! Olvassa!
Almády. «… öreg grófom egy kosár cseresznyét küldött nekem.
Azt mondja, ezek Franciaország első cseresznyéi, melyeket szerelme
jeléül küld nekem. Kutyuskám-putyuskám, gyere fel hozzám ma
este, együk meg együtt az öreg hülye cseresznyéjét. Izgatottan vár
türelmetlen Emilienned.»
Annie. Na látja. Ha te úgy, én is úgy. Szemet szemért. Fogat
fogért. Primeurt primeurért. Barackot cseresznyéért. Látom, nem
tagadja. A cseresznyét nem az anyagrófnénak, hanem Emilienne
kisasszonynak küldte. Úgy van?
Almády megtörten. Úgy van.
Annie. Most távozzék lakosztályomból. Ah gyalázat! Ön engem
többé nem lát. Még ma este csomagolok és elutazom anyámhoz. Az
anyavarrónőhöz. És ha épp tudni akarja, a márki, akivel gyanusít,
már rég nem is lakik itt. Párizsban van. És ha fáradságot vesz
magának a komornámat tovább vallatni, azt is megtudhatja, hogy
tőlem volt megbízása addig kóborolni az országúton, amíg ön arra
lovagol és ha ön megszólítja, dadogást színlelve átadni a barackot és
a levelet. Színpadiasan kacag. Hahaha!
Almády. Tehát csak lecke volt?
Annie. Erre már akkor rá kellett volna jönnie, mikor a komornám
engem elárult. Ha igazán megcsalnám önt, a komornám inkább
négyfelé vágatná magát, de hallgatna. Jó komornák olyanok, mint a
halak: minél több részre vágják őket, annál mélyebben hallgatnak.
Titkár elragadtatva, súgva, Gálhoz. Aforizma!
Gál. És még milyen!
Almády. Bevallom, elvesztettem a játszmát.
Annie. Köztünk mindennek vége!
Almády. Yvonne! Letérdel. Csak azt ne mondja, hogy köztünk
mindennek vége! Yvonne! Bocsássa meg ezt az egyetlen
ballépésemet!
Annie. Ne alázkodjék meg. Egy gróf, aki ilyen nevet visel! Keljen
fel! Egy idős ember! Almády felkel. Bevallom, most meg vagyok
hatva. De nem a térdrerogyása hatott meg, hanem az okossága,
hogy nem tagadott le semmit. Egy férfi, aki hazudik, olyan, mint egy
oroszlán, amely csicsereg.
A titkár Ádámhoz fordul, elégedetlen arcot vág és fejét rázza, mintha
azt mondaná: «Ez a szellemesség nagyon buta.» Ádám igenlőleg int.
Annie. Megbocsátok önnek. De két büntetésben fogom
részesíteni. Először is megtiltom önnek, hogy ezt a barackot
megegye.
Almády. Ah ez fáj. De tűröm.
Annie. Másodszor: holnap Párizsba utazom. Egyedül. Szórakozni.
Érti? Egyedül!
Almády kétségbeesetten. Yvonne!
Annie. Egy szót se, gróf! Vagy bízik a tisztességemben vagy nem.
Ha igen, visszajövök ide, ha nem, örökre elmegyek.
Titkár súgva, Ádámhoz. Most nem tudom kérem: szellemesség
volt ez vagy nem?
Ádám. Nem.
Titkár. Köszönöm.
Annie. Párizsba utazom és ön epedni fog utánam.
Almády. Ah! És meddig akar Párizsban maradni?
Annie. Egy hétig!
Kis szünet.
Almády felordítva. Nem, nem! Azt nem birom ki! Szeretlek,
imádlak, megőrülök érted! Úgy szeretlek mint egy felhőkarcoló a
felhőt, amely felette lebeg, de az első széllel elröpül! Nem bírok
nélküled élni! Egy hétig se! Egy napig se! Egy órát se!
Annie. Csaló vagy. Ezek frázisok.
Gál és Ádám már a «felhőkarcoló» szónál lassan és nagyon
csodálkozva egymásra néztek.
Gál. Bocsánatot kérek, de… pardon egy percre! Mi volt ez?
Annie. Tessék?
Turai. Kérlek, ne zavarj. Épp, mikor a legjobb lendületben
vannak!
Titkár. Nagyszerű! És milyen érdekes! Ádámhoz izgatottan. Mit
gondol, elutazik az asszony?
Gál Ádámhoz. Te… ez pokoli.
Turai. Csendet kérek. Almádyhoz. Tessék tovább mondani. Talán
ide menjünk vissza: «Úgy szeretlek.»
Almády. Úgy szeretlek, mint egy felhőkarcoló a felhőt, amely
felette lebeg, de az első széllel elröpül. Nem bírok nélküled élni! Egy
hétig se! Egy napig se! Egy órát se!
Annie. Csaló vagy. Ezek frázisok.
Almády. Nem nem! Megőrülök érted! De te kihasználtál és
kifacsartál, mint egy citromot és most el akarsz dobni! Elfordul,
eltakarja arcát.
Gál és Ádám a «citrom» szónál ismét egymásra néztek. Most Gál
feláll, nagyon idegesen.
Gál. Turaihoz, halkan, de nagyon izgatottan. Kérlek szépen…
Turai türelmetlenséget színlelve. Mi az?
Gál. Kérlek egy pillanatra. Anniehoz és Almádyhoz. Bocsánat egy
pillanatra, de okvetlenül mondanom kell neki valamit. Turaihoz. Te…
Hallod te, amit ezek játszanak?
Turai. Hát hogyne.
Gál remegve az izgalomtól. Hát akkor… nem emlékszel te ezekre
a mondatokra?
Turai. Érdekes. Most hogy mondod… tényleg… én is észrevettem
valamit, csak nem akartam szólni.
Gál Ádámhoz, izgatottan. Gyere ide. Turaihoz. Te… ez a szöveg
szórul-szóra ugyanaz, amit mi éjjel a falon keresztül hallottunk.
Turai a füzetbe néz. Tényleg… Hát te… hát ez fantasztikus!
Gál izgatottan. Menj, folytasd… mert még észrevesznek valamit.
Halljuk tovább.
Turai visszamegy, Gál karonfogja a szintén nagyon izgatott Ádámot s
mindketten feszülten figyelnek.
Turai. Hát gyerünk kérem tovább. Hol hagytuk el? «Most el
akarsz dobni.»
Annie. Ki akar eldobni, te bolond? Ne őrjöngj! Az előbb már okos
voltál. Gyere ide, megcsókolom azt a szép klasszikus fejedet.
Gál nagyot ordít. Áááh!
Annie idegesen. Mi baja?
Gál. Ezer bocsánat! Bocsánatot kérek! Alig tud az izgalomtól
beszélni. Kedves Annie! És mélyen tisztelt művész úr! Bocsánat,
megint meg kell önöket zavarnom, de okvetlenül kell valamit
mondanom Turainak. Ádámhoz. Gyere csak ide. Turaihoz, aki hozzája
lépett. Te! Itt ezen a helyen változzam sóbálvánnyá, ha ezek szórul-
szóra nem ugyanazt a szöveget mondják, amit az éjjel beszéltek.
Ezek ketten tegnap éjjel… ezeket a szerepeket tanulták. És mi
szamarak vagyunk.
Turai. Jó, jó, szamarak vagytok, de most, kérlek ne csinálj
feltűnést. Megjátssza az izgatottat. Óriási meglepetés!… Micsoda
furcsa véletlen!
Ádám Gálhoz. Végy énrólam példát. Én ordítani szeretnék a
boldogságtól és nézd, türtőztetem magamat.
Turai. Egy szót se!
Annie. De kérem Sándor, mit csinálnak ott maguk?
Almády. Mi van kérem?
Turai visszatérve Almádyhoz. Gál azt mondja és úgy érzem, hogy
igaza van, hogy majd este az előadásra valami szép klasszikus fejet
csináljon magának.
Almády. Mi az, hogy klasszikus fejet csináljak?
Turai. A nő azt mondja: «Azt a szép klasszikus fejedet.»
Almády. Igen.
Turai. Hát csináljon valami fejet, amire ezt joggal lehet mondani.
Almády. Mi az, az enyémre nem lehet?
Gál őszintén. Nem.
Turai. Igaza van. Az ön kobakja minden, csak nem szép és nem
klasszikus.
Almády mérgesen. Pedig ezt már mondták rá.
Turai. Ebben a darabban. De bocsásson meg, jóízlésű nő ilyet
erről a fejről nem mondhat.
Almády dühösen, Anniehoz. Önnek is ez a véleménye?
Annie. Engem hagyjon kérem, én a szerepemhez tartom
magamat.
Almády keserű mosollyal. Jó. Hát majd csinálok egy szép
klasszikus fejet. Dúl-fúl.
Ádám türelmetlenül. Urak, múlik az idő! Gyerünk, gyerünk!
Gyorsan! Folytassuk!
Turai. A tisztelt néző urak szíveskedjenek békén maradni. Miért
vagy olyan türelmetlen?
Ádám zavartan. Kilenc órakor van a vacsora… és… titkárhoz…
ugye?
Titkár. Igen. Már csak néhány percünk van.
Turai. Hát akkor gyerünk gyorsan.
Annie. Vagyis: Gyere ide, megcsókolom azt a szép klasszikus
fejedet. Csókot lehel homlokára.
Almády. Ez nem csók, ez borravaló.
Gál odaszól Turainak. Ez a hasonlat ordináré. Csodálom egy
francia szerzőtől.
Turai. De hát egy ordináré embert akar vele jellemezni.
Gál. Bocsáss meg, ez egy gróf.
Turai. De közönséges, ostoba ember, akinek a szókincsében nincs
finomabb hasonlat. Csak te ne tanítsd Sardout darabot írni.
Almády mérgesen. Kérem, gyerünk tovább. – Ez nem csók, ez
borravaló.
Annie. Ne ordíts!
Almády. De ordítok! Kifacsart citrom vagyok! Citrom vagyok! Tudja
meg az egész világ, hogy citrom vagyok! A lábához borul és zokog.
Gál. Ez a citrom is. Direkt hülye.
Gál suttog Ádámmal, Ádám boldogan mosolyog, aztán erősen
megrázzák egymás kezét.
Turai. De kérlek, mit csináltok ott?
Gál. Semmit. Azt súgtam neki, hogy ezt a citromhasonlatot
ostobának tartom.
Turai. Én nagyon jónak tartom. Egy buta gyümölcstenyésztő, aki
onnan veszi a hasonlatait, ahol az élete eltelik: a gyümölcsei közül.
Ne tanítsd te Sardout darabot írni.
Almády, aki Annie előtt térdel, e szidalmakra felkapja a fejét Annie
öléből és dühös arcot mutat.
Turai. Folytassuk! «Könyörgöm, ne térdelj.»
Annie visszanyomja Almády fejét az ölébe. Könyörgöm, ne térdelj,
ne sírj, mert azt nem bírom. Tudod te jól, hogy csak téged szeretlek.
Az asztalhoz megy, ahol a barack van.
Almády a dühtől majdnem sírva. Oh sok szerelmes éjszakánk
fellángoló emléke! Felkel. Az asztalhoz lép és meg akarja érinteni a
barackot.
Annie. Erigy innen!
Almády a barackot nézegetve. Óh, ha ezt látom! Nagyon érzékien.
Óh, ezek a formák! Ez az isteni rózsaszínű bőr! Hát van még egy
ilyen a világon? A barackhoz nyúl. Óh, ezt símogatni!
Annie. Nem mégy innen?
Almády felkapja a barackot, az egyik kezében tartja, a másikkal
kéjesen simogatja. Óh! Mily gömbölyű, síma, bársonyos, illatos! A
szájához emeli.
Annie felsikolt. Nem! Ne harapj bele! Kiragadja a barackot a
kezéből és visszateszi az asztalra.
Gál komikusan felordít és elkezd görcsösen nevetni. Ádám Gál felé
tárja karjait és szintén szívből nevet. Ölelkeznek és csókolóznak. Gál
nem bírja abbahagyni a nevetést. Almády és Annie elfordulnak tőlük,
Almády mérgesen, Annie szégyenkezve.
Titkár izgatottan. Mi ez kérem, ha szabad kérdeznem? Én is
szeretnék az urakkal nevetni.
Ádám. Ezt maga nem érti.
Gál Ádámhoz, Turaira mutatva. A legjobb az, hogy ő mérges.
Annie. De hát min nevetnek maguk?
Turai erélyesen. Elég volt, gyerünk tovább.
Gál. Jó. Gyerünk tovább. Halljuk. Gúnyolódva. Gömbölyű, síma,
bársonyos, illatos!
Ádám. És: ne harapj bele!
Annie zavartan, szerepét mondva. Ne harapj bele!
Almády mérgesen. De mikor olyan kívánatos.
Gál és Ádám halkan tovább nevet.
Almády. Jó, jó, tudom, hogy semmit nem jelentek számodra.
Annie. Hogy mondhatsz ilyet? Ne keseredj úgy el. Esküszöm
neked mindenre, ami nekem szent, hogy… abbahagyja mi is
következik most?
Turai. Nem jut eszébe? Amire ilyen szentül esküdött?
Annie. Elfelejtettem. Szerep!
Almády keserűen. Szerep.
Annie idegesen. Igenis, szerep.
Turai súg. «Az én életemben férfi…»
Annie darálva. Ja igaz… soha nem jelentett annyit, mint te. Ezt én
nem fogom soha elfelejteni! Mert férfi vagy tetőtől-talpig. Ki tudja,
ha én nem?
Turai. Hát ezt a mondatot kihúzzuk.
Annie. Miért?
Turai. Rendes nő ilyet nem mond. Ez olyan világos és brutális
célzás a nemi viszonyra… ezt ilyen előkelő közönség előtt nem lehet
elmondani.
Annie szégyenkezve. De hát ez a nő ezt a darabban mondja.
Négyszemközt.
Turai titkárhoz. Lesznek fiatal lányok is a koncerten?
Titkár. Hogyne!
Turai kihúzza a mondatot. Akkor kihúzzuk. Ehelyett azt fogja
mondani: «Mit tagadjam, szeretlek, bár mindennek látszol, csak
férfinek nem.» Almády mozdulatot tesz. Tovább! Almádyhoz. «Úgy
szenvedek…»
Almády. Úgy szenvedek, mint egy beteg ló! Turaihoz. Lássa, ezt
kellene kihúzni.
Turai. Miért?
Almády. Hát hogy mondhat az ember ilyet önmagáról?
Turai. Már előfordult. Hozzátartozik egy állattenyésztő
szókincséhez.
Almády. Pardon. Gyümölcstenyésztő. A szakmája: gyümölcs.
Turai. És állat. Állat is.
Annie. Ah, Maurice, ne szenvedj. Ne állj ott olyan
kétségbeesetten. Gyere ide, csókolj meg, te szamár.
Almády Turaihoz, rekedten. Hát bocsásson meg kérem… ló és
szamár! megcsókolja Anniet.
Ádám Gálhoz, suttogva. Ennél a mondatnál mentem én ki a
szobából. Milyen komikus!
Turai idegesen. Mi az? Nem tetszik nektek?
Gál. Nem. Ez a szerelmi párbeszéd se nem igaz, se nem szép.
Rossz munka. Hát ilyen az élet? Beszél így egy jólnevelt úriember
egy hölggyel?
Titkár. Tényleg, az eleje jobb volt.
Gál. Mert az maga volt az igazi élet. Egy szép, eleven alak. A
gyümölcsös gróf. De ez a szerelmi párbeszéd? Ez papiroscsinálmány.
Nem gondolod?
Turai. Én élethűnek találom. A füzetbe néz. Na gyerünk a végére.
Most megcsókolták egymást.
Almády. Ah Yvonne! Izlett a csókom?
Annie. Nem Maurice, csókod undorító, szúr a szakálad.
Almády Turaihoz. Ezt benne hagyjuk?
Turai. Na hallja, mindent csak nem lehet kihúzni!
Almády. De nekem ilyet mondani. Hisz a közönség meg fog engem
utálni!
Gál. Általában… mi az ördögnek választott ilyen szerepet? Miért
játszik ilyen gyámoltalan hülyét?
Turai. Igaz is, én csak nem akarok beleszólni, de én se értem,
miért játszik ilyen szerepet. Ha ki is hagyunk itt-ott valamit, hiába,
maga az alak utálatos és nevetséges.
Gál. Az ilyen szerepeknél rögtön megérzi a szakember, hogy a
szerző tényleg undorodott ettől az alaktól. Turaihoz. Te ezt nem
érzed?
Turai. Dehogy nem. Hogyne érezném.
Annie idegesen. Kérem, végezzünk már. Hidd el, Maurice, így is
szeretlek, bár tudom, hogy az egész világ kinevet téged.
Almády. Azt meg is érdemlem, Yvonne.
Annie. Nem szégyeled magad a feleséged előtt Maurice? A
gyerekeid előtt?
Almády. Oh! Gyermekeim!
Annie. Ha a fiad ezt megtudná! Mit szólna hozzá? Fiad, a
huszárezredes!
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebooknice.com

You might also like