The C Standard Library Fourth Edition Includes C 23 Rainer Grimm Download
The C Standard Library Fourth Edition Includes C 23 Rainer Grimm Download
https://ebookmeta.com/product/the-c-standard-library-fourth-
edition-includes-c-23-rainer-grimm/
https://ebookmeta.com/product/beginning-c23-ivor-horton/
https://ebookmeta.com/product/beginning-c23-7th-edition-ivor-
horton/
https://ebookmeta.com/product/invertebrates-fourth-edition-
richard-c-brusca/
https://ebookmeta.com/product/social-marketing-principles-and-
practice-for-delivering-global-change-4th-edition-gerard-
hastings/
ACSM Guidelines for Exercise Testing and Prescription
11th Edition Gary Liguori
https://ebookmeta.com/product/acsm-guidelines-for-exercise-
testing-and-prescription-11th-edition-gary-liguori/
https://ebookmeta.com/product/the-abused-and-the-abuser-victim-
perpetrator-dynamics-1st-edition-warwick-middleton-adah-sachs-
martin-j-dorahy/
https://ebookmeta.com/product/quantum-machine-learning-an-
applied-approach-the-theory-and-application-of-quantum-machine-
learning-in-science-and-industry-1st-edition-santanu-ganguly/
https://ebookmeta.com/product/eugenics-genetics-and-disability-
in-historical-and-contemporary-perspective-implications-for-the-
social-work-profession-gerald-obrien/
https://ebookmeta.com/product/invasion-1st-edition-a-j-mackenzie/
German Stoicisms From Hegel to Sloterdijk 1st Edition
Kurt Lampe
https://ebookmeta.com/product/german-stoicisms-from-hegel-to-
sloterdijk-1st-edition-kurt-lampe/
The C++ Standard Library
What every professional C++ programmer should know
about the C++ standard library.
Rainer Grimm
This book is for sale at http://leanpub.com/cpplibrary
This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process.
Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many
iterations to get reader feedback, pivot until you have the right book and build traction once you do.
Reader Testimonials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
English Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
German Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Purpose of this Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Source Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Value versus Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Further Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Cippi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
About Me . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
2. Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Useful Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Adaptors for Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Reference Wrappers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Smart Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Type Traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Time Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
std::any, std::optional, and std::variant . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
std::expected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
CONTENTS
4. Sequence Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Deques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Forward Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5. Associative Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Ordered Associative Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Unordered Associative Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6. Container Adaptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Linear Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Associative Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7. Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Contiguous Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Multidimensional Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
8. Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Iterator Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Useful Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Adaptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Reader Testimonials
English Edition
Rick Audet
Senior Engineer, Dolby Laboratories
German Edition
Odin Holmes
CEO/CTO at Auto-Intern GmbH
”Das Buch beinhaltet, wie der Name schon sagt, eine recht
ausführliche Beschreibung der STL. Dabei merkt Mann deutlich dass
der Autor auch selber auf hohem Niveau programmiert. Es gibt oft
den ein oder andere Tipp oder Wink in die richtige Richtung die
bei Bücher von Berufsautoren oft fehlen. Z.B. die Aussage dass
std::vector für 95% aller Fälle die beste Wahl ist oder dass
std::async meistens die erste Wahl sein sollte lenkt der Leser
geschickt in die richtige Richtung.
Auch die Auswahl an Komponente aus der STL ist sehr gut getroffen
(keiner kann in ein kürzen Buch die ganze STL beschreiben). Oft
sehe ich, vor allem in Deutschsprachige Literatur, dass die Auswahl
eher auf Komponente trifft die leicht zu beschreiben sind und nicht
auf die Nützlichen. Eine gute und dennoch kürze Beschreibung vom
std::regex z.B. ist weiß Gott nicht einfach aber in diesem Fall ist
es der Autor sehr gelungen.”
Ramon Wartala
Director Technology at Performance Media GmbH
Reader Testimonials ii
”Die 215 Seiten plus Index des ’C++ kurz & gut’ vom Autor Rainer Grimm
stellen ein gelungene Destillat viel umfangreicherer Texte zum Thema
da. So nimmt das Kapitel über die klassischen Algorithmen der
Standardbibliothek ganze 131 Seiten ein. Selbst kurze Beispiele für die
Anwendung der wichtigsten Bestandteile der Standardbibliothek passen
eng gedruckt in das schmale Büchlein. Auch wenn heute Tools wie Dash
oder entsprechend ausgestattete IDEs, mehr und mehr den Platz derartiger
Desktop-Referenzen einnehmen, ist das ’kurz & gut’ zu C++
Standardbibliothek ein leichter und mobiler Begleiter für jeden C++
Entwickler. Und als Kindle Version um so bequemer mitzunehmen.”
Introduction
Purpose of this Book
The C++ Standard Library is a quick reference to the standard library of the current C++23 standard
ISO/IEC 14882:2023¹. C++23 has more than 2100 pages and follows the big C++20 standard. In contrast,
C++23 and C++17 are neither a big nor small C++ standards. C++14 is a small addition to C++11.
C++11 had more than 1,300 pages and was published in 2011. That was 13 years after the first and
only C++ standard, C++98. Of course, there is also C++03, published in 2003. But C++03 is considered
a bug-fix release.
This quick reference aims is to provide a concise reference to the C++ standard library. This book
assumes that you are familiar with C++. If so, you will get the most benefit out of this book. If C++ is
new to you, you should start with a textbook about core C++. Once you have mastered a book about
the core language, you can make your next big step by reading this book. To make your job easier, I
have provided many short code snippets to connect theory and practice.
Index
The book should be a reference for C++ and should, therefore, have an index. Leanpub does not
support the creation of an index. So I’ve made it based on regular expressions, naming conventions, a
lot of python magic, and a long table that I had to split for each page. Here is the problem. The index
is only fully available in the pdf format of the book.
Conventions
I promise only a few conventions.
Special Fonts
Italic
I use Italic if something is essential.
Monospace
I use Monospace for code, instructions, keywords, and names of types, variables, functions, and
classes.
¹https://www.iso.org/standards.html
Introduction iv
Special Boxes
I use boxes for unique information, tips, and warning.
Information headline
Information text.
Tip headline
Tip description.
Warning headline
Warning description.
Source Examples
I don’t particularly appreciate using directives and declarations because they hide the library’s
namespace. I use them so that the origin can always be deduced from the using directive (using
namespace std;) or the using declaration (using std::cout;). Still, because of the limited length of a
page, I have to use them from time to time.
Only header files of the featured functionality are shown in the code snippets. true or false is
displayed in the output code snippets for boolean values, and
std::boolalpha is not used. When your compiler supports the modularized standard library in C++23,
you can replace the headers with an import std statement.
Source Code
To be concise, I only present short code snippets in this book. The name of the entire program is in
the first line of the code snippet.
Acknowledgments
First, I want to thank Alexandra Follenius, the lector at O’Reilly, for the German book C++
Standardbibliothek². The German book is the ancestor of this book. For my book C++ Standardbib-
liothek Karsten Ahnert, Guntram Berti, Dmitry Ganyushin, Sven Johannsen, Torsten Robitzki, Bart
Vandewoestyne, and Felix Winter were very valuable proofreaders. A lot of thanks to all of them.
I started a request in my English blog for translating this book to English www.ModernesCpp.com³.
I received a much higher response than I expected. Special thanks to all of you, including my son
Marius, the first proofreader.
Here are the alphabetically ordered names: Mahesh Attarde, Rick Audet, Pete Barrow, Michael Ben-
David, Dave Burns, Alvaro Fernandez, Juliette Grimm, George Haake, Clare Macrae, Arne Mertz, Ian
Reeve, Jason Turner, Bart Vandewoestyne, Ivan Vergiliev, and Andrzej Warzynski.
Further Information
The idea of the book is relatively easy to paraphrase: “What every professional C++ programmer
should know about the C++ standard library.” Because of this intention, I left many answers
unanswered; therefore, I provide you with the links to the details at the beginning of each new topic.
The link will refer to the excellent online resource www.cppreference.com⁴.
Cippi
Let me introduce Cippi. Cippi will accompany you in this book. I hope you like her.
²http://shop.oreilly.com/product/9783955619688.do
³http://www.modernescpp.com/index.php/do-you-wan-t-to-proofread-a-book
⁴http://en.cppreference.com/w/
Introduction vi
About Me
I’ve worked as a software architect, team lead, and instructor since 1999. In 2002, I created company-
intern meetings for further education. I have given training courses since 2002. My first tutorials were
about proprietary management software, but I began teaching Python and C++ soon after. I like to
write articles about C++, Python, and Haskell in my spare time. I also like to speak at conferences. I
publish weekly on my English blog Modernes Cpp⁵, and the German blog⁶, hosted by Heise Developer.
Since 2016, I have been an independent instructor giving seminars about modern C++ and Python.
I have published several books in various languages about modern C++ and, in particular, about
concurrency. Due to my profession, I always search for the best way to teach modern C++.
⁵https://www.modernescpp.com/
⁶https://www.grimm-jaud.de/index.php/blog
Introduction vii
Rainer Grimm
1. The Standard Library
The C++ standard library consists of many components. This chapter serves two purposes. It should
give you a quick overview of the features and a first idea of how to use them.
The History
C++ and, therefore, the standard library has a long history. C++ started in the 1980s of the last
millennium and ended now in 2023. Anyone who knows about software development knows how
fast our domain evolves. So 40 years is a very long period. You may not be so astonished that the
first components of C++, like I/O streams, were designed with a different mindset than the modern
Standard Template Library (STL). C++ started as an object-oriented language, incorporated generic
programming with the STL, and has now adopted many functional programming ideas. This evolution
of software development in the last 40 years, which you can observe in the C++ standard library, is
also an evolution in how software problems are solved.
C++ timeline
The first C++98 standard library from 1998 had three components. Those were the previously
mentioned I/O streams, mainly for file handling, the string library, and the Standard Template Library.
The Standard Template Library facilitates the transparent application of algorithms on containers.
The history continues in 2005 with Technical Report 1 (TR1). The extension to the C++ library ISO/IEC
TR 19768 was not an official standard, but almost all components became part of C++11. These were,
for example, the libraries for regular expressions, smart pointers, hash tables, random numbers, and
time, based on the boost libraries (http://www.boost.org/).
In addition to the standardization of TR1, C++11 got one new component: the multithreading library.
The Standard Library 2
C++14 was only a minor update to the C++11 standard. Therefore, C++14 added only a few
improvements to existing libraries for smart pointers, tuples, type traits, and multithreading.
C++17 includes libraries for the file system and the two new data types std::any and std::optional.
C++20 has four outstanding features: concepts, ranges, coroutines, and modules. Besides the big four,
there are more pearls in C++20: the three-way comparison operator, the formatting library, and the
concurrency-related data types semaphores, latches, and barriers.
C++23 improved the big four of C++20: extended ranges functionality, the coroutine generator
std::generator, and a modularized C++ standard library.
Overview
As C++ has many libraries, finding the convenient one for each use case is often difficult.
Utilities
Utilities are libraries with a general focus and, therefore, can be applied in many contexts.
Examples of utilities are functions to calculate the minimum or the maximum of values, the midpoint
of two values, or to swap or move values. Thanks to save comparison of integers, integral promotion
does not kick in.
Other utilities are std::function, std::bind, or std:bind_front. With std::bind or std::bind_front,
you can easily create new functions from existing ones. To bind them to a variable and invoke them
later, you have std::function.
With std::pair and the generalization std::tuple you can create heterogeneous pairs and tuples of
arbitrary length.
The reference wrappers std::ref and std::cref are pretty handy. One can use them to create a
reference wrapper for a variable, which for std::cref is constant.
Of course, the highlights of the utilities are the smart pointers. They allow explicit automatic memory
management in C++. You can model the concept of explicit ownership with std::unique_ptr and
model shared ownership with std::shared_ptr. std::shared_ptr uses reference counting for taking
care of its resource. The third one, std::weak_ptr, helps to break the cyclic dependencies among
std::shared_ptrs. Cyclic references are the classic problem of reference counting.
The type traits library can check, compare and manipulate type information at compile time.
The time library is an import addition to the new multithreading capabilities of C++. But it is also
quite handy to make performance measurements and includes support for calender and time zone.
With std::any, std::optional, and std::variant, we get with C++17 three special datatypes that can
have any, an optional value, or a variant of values.
Another Random Scribd Document
with Unrelated Content
présente sous des aspects si variés, et dans un désordre de
symptômes si extravagant, que l’observateur et le spécialiste en sont
presque toujours déroutés. C’est ce qui explique que la guérison en
soit si malaisée.
—Vadim, je voudrais lire le travail de grand-père; pourrais-tu me
le procurer?
—Rien ne m’est plus facile, car le sachant inutile à ta mère pour
l’instant, je l’ai gardé chez moi. Je pourrai te l’envoyer de Kieff, en
rentrant. Seulement, je te préviens que tu y trouveras beaucoup de
mots techniques et par conséquent difficiles à comprendre pour toi
qui n’es pas initiée...
—Je m’aiderai d’un dictionnaire; il y en a de gros dans la
bibliothèque, ceux de grand’père, justement... Oh! comme cela va
m’intéresser, maintenant! Hélas! oui, lugubrement m’intéresser,
ajouta Viéra avec un soupir.
—Et faire trotter ton imagination qui n’a pas besoin
d’encouragement pour cela! Je ne sais vraiment si je dois te donner
ce mémoire...
—Et quel droit aurais-tu d’agir ainsi, je te prie? Tu n’as rien à voir
avec ma famille du côté maternel. Pourtant, tu les as bien lus, toi;
alors, pourquoi m’empêcherais-tu d’en prendre connaissance?... Je
ne suis plus une enfant, en somme... Oh! je te dis, Vadim, fit Viéra
lentement, que depuis une heure je ne suis plus une enfant! Crois-
le, frère!
Tant de gravité accompagnait ces paroles, une expression de
mélancolie si profonde voilait les clairs yeux bleus, que le jeune
homme sentit monter de son cœur vers sa cousine un élan de pitié
infinie.
—Eh bien! qu’il soit fait selon ta volonté, ma Vierotschka!
—Dans le désordre de mes questions, j’ai encore oublié quelque
chose. Dis-moi, parmi les membres vivants de ma famille, à part la
sœur de maman,—celle-là, je sais qu’elle est folle,—y a-t-il encore
des... malheureux comme ceux dont nous venons de parler?
—Non. Et non seulement plus de ceux-là, mais de réprouvés
d’aucune sorte, car je sais par ta mère—que j’ai interrogée sans lui
faire soupçonner le motif de mon enquête—qu’après elle et ta tante
l’aliénée, Katia, Sacha et toi, êtes les dernières représentantes de
votre race du côté des Douganovski. Ton grand-père constate déjà
dans son mémoire que cette famille est près de s’éteindre... Il n’avait
eu qu’un fils, lui, qui est mort en bas âge, puis ta tante Sofia, puis ta
mère; et, en fait de parents plus éloignés, dans la branche des
Douganovski, il ne lui restait qu’une tante célibataire atteinte de
folie, et un cousin germain âgé de plus de soixante ans, sans
descendants. Ces deux-là sont morts depuis longtemps. Le médecin
aliéniste qu’était ton grand-père aurait dû se réjouir de voir réduite à
quelques membres une race stigmatisée d’un si horrible mal; mais
non, il n’y songe même pas; l’orgueil de l’homme est si grand qu’il
préfère se survivre à lui-même dans la souffrance et l’abjection,
plutôt que de consentir au néant!... Tu vois, Viérotscka, que je
connais l’histoire de la famille mieux que toi.
—Oui, c’est vrai. Ces questions ne m’intéressaient pas jusqu’ici;
je ne pensais qu’à maman, à Sacha, à Katia, à toi, Vad!... Je n’avais
pas encore appris qu’il faut dans la vie savoir penser à tout, surtout
à ce qui est le plus triste, hélas!...
—Il ne faut pas non plus que tu deviennes maintenant d’un
pessimisme outré, ma petite sœur! C’est une tendance qu’ont les
êtres jeunes et vibrants d’exagérer ainsi leurs peines; il faut voir les
choses d’un œil plus impartial, plus philosophe.
—Eh! comment veux-tu que je les voie, les choses, quand elles
sont là criantes d’injustice et de réalité! Ah! Vadia! Sacha folle!
Comment veux-tu que je pense à une tragédie pareille sans gémir
tout haut de douleur et de pitié?
—Crois-tu, ma chérie, que je ne te comprenne pas? Va, je suis là
depuis une demi-heure à te prescrire du calme, et mon cœur, à moi,
éclate de chagrin! Mais comment saurons-nous épargner les peines
à ceux qui nous sont chers si nous ne parvenons pas à surmonter les
nôtres en leur présence? Songe à ta mère qui, grâce au ciel, est
restée jusqu’à présent aveugle au malheur de Sacha; que deviendra-
t-elle le jour où elle s’en apercevra enfin?... Oh! sœur, c’est là une
chose dont Dieu me préserve de devenir le témoin, et que nous
devons retarder au prix de tous nos efforts! Quant à Katia, le
bonheur des fiancées l’aveugle, elle est si gaie, si insouciante!
Aurons-nous le courage de lui gâter l’heure triomphante de son
mariage par de si tristes craintes? Non seulement nous devons donc
cacher notre inquiétude le mieux que nous le pourrons, mais encore
essayer de donner le change par nos plaisanteries et notre air de ne
rien voir, si une bizarrerie plus accentuée de notre Aleksandra venait
un jour ou l’autre forcer les soupçons de ma tante ou de Katia...
Nous éloignerons de la sorte, aussi longtemps que nous le pourrons,
la douleur des êtres faibles que nous aimons. Te sens-tu le courage
d’agir ainsi, Viéra?
—Oui, Vadim, oui, cette force, je l’aurai; du moins tant que tu
seras ici pour me seconder... Mais dans trois semaines tu pars, et
alors que ferai-je seule contre l’indomptable malheur?
—Ce que ta vaillance et ta pitié réunies te dicteront, sœur. Je
réponds d’elles, moi, je sais bien qu’elles iront jusqu’au bout de leur
tâche!
—Et quand il sera trop tard pour feindre?... Quand nos efforts
deviendront vains?...
—Alors, Viéra, alors nous laisserons agir Dieu!
La jeune fille, à ces mots, tourna la tête vers l’image sainte dont
l’or pâle scintillait doucement dans un coin de la chambre. Tout
d’abord un mouvement d’hésitation la retint, comme si le premier
souffle d’épreuve qui passait sur sa vie avait eu déjà le pouvoir de
faire vaciller la claire flamme de sa Foi; mais ce ne fut là qu’une
faiblesse passagère; bientôt reconquise, elle marcha ardemment
vers l’icône.
—O Seigneur! elle est si douce et si jolie, murmura-t-elle en se
prosternant par trois fois pour toucher la terre du front, selon l’usage
russe. Éloigne, Dieu puissant, éloigne ce calice de tes fidèles
servantes! Et maintenant, je vais te laisser travailler, Vad!...
Sa voix était devenue plus égale, son regard plus serein.
—Travailler? Non, je ne le pourrais plus en ce moment; mais je
vais copier ce que j’ai écrit tantôt. Et toi, où iras-tu?
—Près de maman. Depuis que je la sens destinée au malheur, j’ai
besoin de lui montrer toute ma tendresse, à cette pauvre
mamotschka!...
—C’est bon. Dans vingt minutes, dans une demi-heure au plus
tard, j’irai vous rejoindre. Vous serez au jardin?
—Oui, sous le berceau de vigne sauvage. C’est là que nous
travaillerons aujourd’hui au trousseau de Katia.
—Et c’est déjà Mlle Burdeau qui arrive là-bas, sans doute, avec
son chapeau à la mode de Paris?
—De quel côté? Je ne vois pas...
—Mais, là-bas, devant toi. Elle reste immobile sous le bouquet de
lilas, à gauche de la pelouse.
—Ça, Mlle Burdeau? Ça, un chapeau à la mode de Paris?... Oh!
Vad!
Et Viéra ne put s’empêcher, tant sont souples les impressions de
la jeunesse, d’avoir un joli sourire amusé.
—Mais c’est un noisetier noir sur lequel Ioulia a mis sécher une
de nos blouses!...
L’étudiant, à son tour, rit de bon cœur de sa méprise.
—C’est dommage que Katia ne m’ait pas entendu, fit-il; elle
aurait eu là une belle occasion de plaisanter. Comme elle est gaie,
notre Katia!
—Parfois, même, insupportablement; elle n’a pas de mesure.
—Oh! ne le lui reproche pas, Viérotschka! La mesure viendra
assez tôt, va!
—Tu as raison, frère. Hélas! oui... Allons, au revoir, et à tantôt.
—A tantôt.
—Où es-tu, mama? cria Viéra en descendant les marches du
perron.
—Ici... sous la tonnelle. Viens vite... On te cherchait, ma chérie,
dit Tatiana quand la jeune fille l’eut rejointe; le Juif a apporté le
courrier de la gare; il y a une lettre pour toi de Maria Pavlovna.
—Où? Donne.
En prenant le pli scellé que lui tendait sa mère, Viéra rougit, et
son cœur se mit à battre de plaisir; car elle savait qu’une lettre de
Maria Pavlovna, cela signifiait aussi une lettre d’Evguénï, et une
lettre d’Evguénï, c’était une provision de bonheur pour trois à quatre
semaines! Presque aussitôt, pourtant, une faible angoisse fit
tressaillir ses nerfs. «En serais-je déjà réduite, songea-t-elle, les
yeux fixés sur l’enveloppe dont ils semblaient lire attentivement la
suscription, à ne plus pouvoir goûter en paix une joie toute
légitime?»
Mme Erschoff n’ignorait pas la supercherie des lettres de Maria
Pavlovna. Plusieurs fois elle avait surpris dans les épîtres de celle-ci
des feuilles couvertes d’une grosse écriture franche qui n’avait rien
de commun avec les caractères fins et circonspects d’une ancienne
élève de l’«Institut des filles nobles...» Mais, ravie à la perspective
d’une seconde alliance avec la famille Afanassieff, et trop sûre de la
loyauté d’Evguénï qu’elle connaissait depuis son tout jeune âge, pour
craindre un résultat douteux de ce commerce épistolaire, la bonne
Tatiana Vassilievna fermait les yeux sur le manège des jeunes gens
et faisait semblant même de ne pas s’être aperçue qu’il existât entre
eux autre chose qu’une cordiale entente d’amis d’enfance.
—Lis ta lettre à ton aise, Viérotschka, dit-elle en se levant du
banc sur lequel sa fille l’avait trouvée assise, un ouvrage entre les
mains et la chatte d’Aleksandra indolemment nichée dans son giron.
Je vais dire à Ioulia d’apporter ici le thé. Aussi bien les autres ne
peuvent tarder à venir; il est quatre heures et demie, si ma montre
va bien... Viens, Bielka! Viens, mon petit lièvre blanc! Comme elle
est grasse!... No! et ta maîtresse, Bielotschka, où est-elle? Elle nous
néglige bien, n’est-ce pas, Biélousinka, ta petite maîtresse!...
La tigresse en miniature étira ses pattes aux ongles roses, secoua
sa fourrure neigeuse, mais son grave minois ne bougea point. Sa
philosophie de chatte bien nourrie dédaignait de s’émouvoir au son
de vaines paroles...
Maman, elle, poussa un gros soupir, regarda longuement du côté
de la forêt, et dans ses doux yeux bleus, charme resté vivant de sa
grâce d’autrefois, deux larmes furtives perlèrent... Mais, avant que
Viéra pût voir son émoi, elle s’éloigna, suivie de Bieletschka qui,
n’ignorant rien des us de la maison, savait quel profit il y avait pour
elle à se rapprocher des cuisines.
Dix minutes à peine s’étaient écoulées depuis le départ de Mme
Erschoff, que Mlle Burdeau et Katia apparurent à leur tour sous le
berceau de vigne touffue.
—Où étais-tu passée, tantôt? demanda celle-ci à sa cadette. Je te
vois dans la véranda causant avec Evlampia; vite, je fais le tour pour
venir te rejoindre, et, fu...uit! plus personne! J’ai cherché après toi
dans toute la maison, puis au jardin, puis sur la route, mais en vain!
C’est la lettre de Maria Pavlovna que tu tiens là? Comme son écriture
a changé! fit la malicieuse en exagérant son étonnement. On dirait
celle d’un élève en agronomie!...
—Est-ce qu’en Russie les élèves en agronomie ont un genre
d’écriture à eux? demanda Madeleine Burdeau avec ingénuité.
—En Russie, non, pas précisément. Mais à Boutcha... hum!
Et Katia de rire à gorge déployée.
—Comme tes plaisanteries sont fines, Katioucha! dit Viéra en
appuyant sur ce diminutif qui horripilait tant sa sœur. C’est un
honneur, vraiment, d’être mystifié par toi. Pourtant, je te dirai qu’on
le déclinerait parfois avec plaisir, cet honneur, ma chère. Fais-nous
donc la grâce de savoir te taire à propos!...
Katia, gravement, se mit en position, et, pour toute réponse, fit le
salut militaire. Puis, gardant son même ton léger, elle demanda:
—Viens-tu demain à Kieff avec Mlle Burdeau et moi? Je vais
commander ma robe pour le dîner de dimanche en huit. Hé! hé! moi
aussi j’ai mon secret, ajouta-t-elle en tirant de sa poche une lettre
dont elle se servit avec ostentation comme d’un éventail. Notre
mariage sera avancé d’un mois, cria encore l’étourdie dans sa main
gauche roulée en cornet acoustique. Ne le dites à personne... Les
chefs de Serguié ont anticipé son congé; la noce, si maman consent,
—et quel motif aurait-elle de refuser?—aura lieu le 18 novembre...
Mamotschka, viens, chérie; nous parlions de toi... Je disais que tu
nous avais priés, Serguié et moi, d’avancer notre mariage d’un mois,
parce que tu souhaitais être le plus tôt possible débarrassée de ta
fille aînée, et que l’amiral Dariloff, ayant bien voulu prendre ton désir
en considération, avait fait donner son congé à Serguié un mois plus
tôt qu’il ne l’avait été décidé d’abord... Tu es contente? Vois quelle
influence tu as en haut lieu!...
—Dieu de miséricorde! Que me racontes-tu là, gémit la bonne
Tatiana en raffermissant ses lunettes sur son nez pour mieux voir
l’extravagante qui lui parlait. Tu deviens folle, ma pauvre Katia?
Viéra tressaillit. «Encore ce mot, songea-t-elle avec douleur! On
se le jette ainsi constamment à la tête, comme s’il n’avait d’autre
signification qu’un reproche bénin. Mais comme il me fait mal à moi!
Je ne pourrais plus jamais, non plus jamais de la vie l’employer, moi,
maintenant, ce mot affreux, même si ce dont nous avons parlé,
Vadim et moi, n’arrive pas...»
—Peut-on dire des choses pareilles, continuait Mme Erschoff en
hochant la tête d’un air innocemment scandalisé? Enfin, vraiment,
oui, tu es folle, ma petite fille!
—Oui, mamotschka! folle de bonheur, de joie, d’espérance,
d’amour! Folle de mes vingt ans, de mon Serguié, de toi! jeta Katia
en un cri vibrant de débordante ardeur.
—C’est beau, la jeunesse... jeune! fit Madeleine Burdeau,
souriant à cet enthousiasme un peu trop démonstratif, peut-être,
mais si sincère!
—Quel âge avez-vous donc, vous, mademoiselle, pour parler
ainsi, demanda Vadim, qui pendant les derniers mots de Katia était
venu se joindre au groupe? En France, il est impoli, je crois, de
demander son âge à une femme; mais nous, les Russes, nous
sommes plus... mettons plus ronds... Oui, combien de printemps
comptez-vous, pour traiter ainsi la jeunesse comme une chose
regrettée et lointaine?
—Oh! moi!
Le geste de Mlle Burdeau semblait dire: «Moi? est-ce que je
compte, moi? La jeune fille qui, depuis sa sortie de pension, gagne
sa vie parmi les étrangers, a-t-elle un âge?...» Pourtant, craignant
que le jeune homme ne prît son silence pour une coquetterie
puérile, elle finit par dire, tout de même:
—J’ai vingt-six ans, Vadim Piétrovitch. Mon passeport à l’appui,
ajouta-t-elle avec un sourire déjà redevenu gai!
—On vous en donnerait vingt, sans compliment. C’est étonnant
comme les Françaises se... conservent! Et pas dans du vinaigre,
pourtant, comme disait pittoresquement mon précepteur, M.
Rendon!... Sais-tu, Katia, que Mademoiselle a l’air plus jeune que
toi?
—Que bien lui fasse, dit Iékatérina sans rancune.
—Mais le cœur, Vadim Piétrovich... l’âme! jeta Madeleine Burdeau
avec mélancolie.
—Oh! fit Viéra, il ne faut pas avoir vingt-six ans pour que le cœur
et l’âme vieillissent!
Vadim, légèrement, poussa Viéra du coude.
—Je ne dis pas cela pour moi, reprit-elle bien vite en ébauchant
un sourire qui contenta tout le monde; mais...
—Pour le roi de Prusse! trancha Katia en pirouettant sur elle-
même et faisant claquer ses doigts comme des castagnettes. Grâce
à Dieu, voilà le samovar qui vient mettre fin à ce radotage
psychologique! A-t-il de l’esprit, le samovar! Vive le samovar,
vénérable monument de la nationalité russe!
—C’est l’avant-dernière fois que Ioulia nous le donne, le samovar;
n’est-ce pas, enfant? dit Tatiana Vassilievna en prenant des mains de
la Petite-Russienne la bouilloire reluisante. Après demain, elle
retourne chez ses parents, et dans deux semaines, la noce! Ah! ah!
la fillette est heureuse! On dansera, ce jour-là, hein? Et toi la
première, avec ton Danilo?... Mais, que diras-tu, ma colombe, quand
on te coupera tes beaux cheveux? Crois-tu que le mouchoir à fleurs
te coiffera mieux que tes tresses blondes?
—Non! Et que faire, barinia? Maintenant, ma couronne de fleurs
et mes nattes me vont bien, c’est vrai; mais quand je serai vieille!...
Comme on se moquerait de moi si je ne pouvais cacher mes cheveux
sous l’otchipok des babas. Vous savez bien, barinia, que chez nous,
c’est une honte pour une paysanne de rester fille. Et puis...
—Et puis, tu aimes ton Danilo, n’est-ce pas, Iouletschka, fit
Vadim en riant. Est-il humain, et surtout féminin cet «et puis»? Toute
la diplomatie du cœur de la femme tient là-dedans!
—Eh! elle est bien dotée, dit Mme Erschoff quand Ioulia eut fini
de servir le thé; son père donne à Danilo cinq déciatines de terre,
une paire de bœufs, deux vaches, des poules... Pour elle deux
coffres pleins d’effets, un lit et une vaisselle de terre complète. Moi,
je lui offre un samovar de vingt-quatre verres, et les enfants six
essuie-mains brodés. La voilà riche pour toute sa vie, si Danilo reste
l’honnête et courageux garçon qu’il a été jusqu’à présent. A propos,
n’est-ce pas Evlampia que j’ai vue causant avec toi devant le balcon
de la véranda, Viérotschka?
—Si, mère.
—Elles se faisaient des confidences, ajouta vivement Katia en
prenant un air mystérieux, des confidences à propos de Sacha, le
trésor!...
—Ah! toi, laisse à la fin, cria Viéra avec colère.
—Et puis, continua Katia sans se laisser émouvoir par
l’interruption de sa cadette, notre romantique Viéra a disparu de la
véranda comme une ombre... Je l’aurais cru retournée au pays des
esprits si, passant près des fenêtres de Vadim, je ne l’avais...
—Tiens! Tantôt, tu prétendais m’avoir cherchée par toute la
maison, tout le jardin, tout Vodopad, sans pouvoir deviner où j’étais
passée... Tu mens bien, je te félicite, sœur!
—C’est que je voulais voir si tu dirais toi-même ce qui en était...
Mais non, tu as prouvé, Viérotschka, que, si je mens bien, tu ne
dissimules pas plus mal, toi... Et que complotiez-vous, tous deux, je
vous prie? A vous voir, un étranger, ignorant qu’en Russie l’amour
entre cousins germains—entre frère et sœur, comme nous disons,
nous—est considéré presque comme un inceste, aurait pu vous
prendre pour des amoureux en querelle... Moi, je me suis dit
seulement, en remarquant vos noirs visages, que vous deviez être
les complices de Dieu sait quelle chose ténébreuse... Ai-je eu raison,
sœur?
—Oh! oui, oui, murmura Viéra entre ses dents serrées... oui, les
complices d’une chose ténébreuse... d’une chose horrible et
ténébreuse.
—Des héros de Solovieff, quoi! plaisanta très haut Vadim pour
couvrir la voix de sa cousine. Tu as vite bâti des romans! Est-ce une
chose si extraordinaire qu’un tête-à-tête entre Viéra et moi?
—Non; mais aujourd’hui, ça sentait le mystère terriblement!...
Vous aviez des figures tous les deux!... Ah! ma pauvre Melpomène,
comme tu serais démodée avec tes airs tragiques toute autre part
que dans notre sincère Russie!...
—Allons, mes enfants, au travail, intervint Mlle Burdeau qui, avec
sa clairvoyance française, sentait d’intuition la part de vérité que
contenaient les paroles de Katia, et à qui l’expression angoissée du
visage de Viéra n’avait pas échappé; vous savez la tâche que nous
nous sommes imposée pour aujourd’hui. Si vous continuez à
bavarder ainsi sans rien faire, nous ne finirons pas le trousseau
d’Iékatérina à la date fixée... Et que dirait-elle donc, notre fiancée,
s’il fallait supprimer cette belle avance d’un mois dont elle nous
parlait tantôt?... Viéra, ma chérie, voulez-vous me faire le plaisir
d’aller chercher des aiguilles dans la corbeille à ouvrage de Tatiana
Vassilievna! Des nos 10, 9, à la rigueur; j’en aurai besoin bientôt;
celles-ci sont absolument trop grosses pour broder.—Vous ne les
trouverez pas, ma pauvre amie, ajouta-t-elle rapidement à l’oreille
de Viéra; mais cherchez-les longtemps... cela vous fera du bien
d’être seule en ce moment!
Un regard de reconnaissance accueillit ces paroles.
—Oh! merci, merci, Madeleine, répondit tout bas la jeune fille;
vous avez deviné mon plus ardent désir!
Le dos tourné aux regards moqueurs de sa sœur, Viéra put enfin
cesser de se contenir. De grosses larmes tombèrent de ses yeux et
roulèrent lentement tout le long de ses joues brûlantes, désolées,
amères comme le fiel du calvaire. Sa jeune âme, choyée jusqu’alors
par la vie, ne pouvait accepter l’épreuve... Toujours revenait à sa
mémoire l’entretien qu’elle avait eu une heure auparavant avec
Vadim, et le sens des phrases brutales qui s’y étaient échangées,
bouleversait de plus en plus son cœur désemparé. Ah! qu’elles
étaient éloquentes sous leur apparence d’inconsciente raillerie, les
paroles de Katia, faisant allusion au tragique entretien! Comme en
un cauchemar obsédant, Viéra se les répétait à elle-même, tout au
long de la route, ces paroles, et plus elle allait, plus lui semblait
sinistre l’objet qu’elles évoquaient... «Complices d’une chose
ténébreuse... d’une chose ténébreuse... ah! oui, d’une chose horrible
et ténébreuse!...»
Du berceau de vigne sauvage, des voix légères arrivaient jusqu’à
elle, donnant l’impression dissonante d’une musique bouffe entre
deux actes d’un drame... Viéra impatientée s’enfuit vers la maison!
VII