100% found this document useful (1 vote)
66 views

C++20 for Programmers: An Objects-Natural Approach 3rd Edition Paul Deitel download pdf

Deitel

Uploaded by

rudicozgomba
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
66 views

C++20 for Programmers: An Objects-Natural Approach 3rd Edition Paul Deitel download pdf

Deitel

Uploaded by

rudicozgomba
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Download Full Version ebook - Visit ebookmeta.

com

C++20 for Programmers: An Objects-Natural Approach


3rd Edition Paul Deitel

https://ebookmeta.com/product/c20-for-programmers-an-
objects-natural-approach-3rd-edition-paul-deitel/

OR CLICK HERE

DOWLOAD NOW

Discover More Ebook - Explore Now at ebookmeta.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!

C++ How to Program: An Objects-Natural Approach, 11e Paul


Deitel

https://ebookmeta.com/product/c-how-to-program-an-objects-natural-
approach-11e-paul-deitel/

ebookmeta.com

C++20 for Programmers (Deitel Developer Series) 3rd


Edition Paul Deitel

https://ebookmeta.com/product/c20-for-programmers-deitel-developer-
series-3rd-edition-paul-deitel/

ebookmeta.com

Android for Programmers An App Driven Approach Volume 1


2nd Edition Paul Deitel Harvey Deitel Abbey Deitel

https://ebookmeta.com/product/android-for-programmers-an-app-driven-
approach-volume-1-2nd-edition-paul-deitel-harvey-deitel-abbey-deitel/

ebookmeta.com

Biomedical Signal Analysis for Connected Healthcare 1st


Edition Sridhar Krishnan

https://ebookmeta.com/product/biomedical-signal-analysis-for-
connected-healthcare-1st-edition-sridhar-krishnan/

ebookmeta.com
Help Your Team Overcoming Common Collaborative Challenges
in a PLC Supporting Teacher Team Building and
Collaboration in a Professional Learning Community 1st
Edition Michael D. Bayewitz
https://ebookmeta.com/product/help-your-team-overcoming-common-
collaborative-challenges-in-a-plc-supporting-teacher-team-building-
and-collaboration-in-a-professional-learning-community-1st-edition-
michael-d-bayewitz/
ebookmeta.com

Stickmaking Handbook 2nd Edition Andrew Jones Clive George

https://ebookmeta.com/product/stickmaking-handbook-2nd-edition-andrew-
jones-clive-george/

ebookmeta.com

Lectures on Stochastic Programming Modeling and Theory 2nd


Edition Alexander Shapiro

https://ebookmeta.com/product/lectures-on-stochastic-programming-
modeling-and-theory-2nd-edition-alexander-shapiro/

ebookmeta.com

x64 Assembly Language Step-by-Step: Programming with Linux


(Tech Today), 4th Edition Jeff Duntemann

https://ebookmeta.com/product/x64-assembly-language-step-by-step-
programming-with-linux-tech-today-4th-edition-jeff-duntemann/

ebookmeta.com

Crypto Basics: A Nontechnical Introduction to Creating


Your Own Money for Investors and Inventors 1st Edition
Slava Gomzin
https://ebookmeta.com/product/crypto-basics-a-nontechnical-
introduction-to-creating-your-own-money-for-investors-and-
inventors-1st-edition-slava-gomzin/
ebookmeta.com
Beginning 3D Game Assets Development Pipeline: Learn to
Integrate from Maya to Unity Nova Villanueva

https://ebookmeta.com/product/beginning-3d-game-assets-development-
pipeline-learn-to-integrate-from-maya-to-unity-nova-villanueva/

ebookmeta.com
About This eBook
ePUB is an open, industry-standard format for eBooks. However,
support of ePUB and its many features varies across reading devices
and applications. Use your device or app settings to customize the
presentation to your liking. Settings that you can customize often
include font, font size, single or double column, landscape or portrait
mode, and figures that you can click or tap to enlarge. For additional
information about the settings and features on your reading device
or app, visit the device manufacturer’s Web site.
Many titles include programming code or configuration examples. To
optimize the presentation of these elements, view the eBook in
single-column, landscape mode and adjust the font size to the
smallest setting. In addition to presenting code and configurations in
the reflowable text format, we have included images of the code
that mimic the presentation found in the print book; therefore,
where the reflowable format may compromise the presentation of
the code listing, you will see a “Click here to view code image” link.
Click the link to view the print-fidelity code image. To return to the
previous page viewed, click the Back button on your device or app.
C++ 20 for Programmers
Learning C++20 (and other Popular
Programming Languages) with
Deitel on O’Reilly Online Learning

O’ Reilly Online Learning


This subscription service is popular with millions of developers
worldwide.
Many organizations purchase subscriptions for unlimited employee
access.
The site contains 46,000+ e-books and 5,800+ video products.
If your organization has a subscription, you can access all this
content at no charge.
Subscribers here get early access to new Deitel e-book “Rough
Cuts” and LiveLessons video “Sneak Peeks.”

All Deitel C++20 publications on O'Reilly


Online Learning Are Based on Their Print Book
C++20 for Programmers
Approximately 1,000 pages.
200+ complete, working programs, each followed by live
execution outputs.
Approximately 15,000 lines of code.
Line-by-line code walkthroughs.
Emphasis on Modern C++ idiom, software engineering,
performance and security.
Real-world applications.
Interact with the authors at [email protected].

C++20 LiveLessons Fundamentals Video


Product
50+ hours of video with Paul Deitel teaching the content of
C++20 for Programmers.
Access asynchronously on O’Reilly Online Learning at your
convenience.
Learn at your own pace.
Interact with the authors at [email protected].

E-Books
Same content as C++20 for Programmers print book.
Text searchable.
Available from popular e-book providers, including O’Reilly,
Amazon, Informit, VitalSource, Redshelf and more.
Interact with the authors at [email protected].

Full-Throttle Live Training Courses


Paul Deitel teaches fast-paced, full-day, presentation-only courses.
Ideal for busy developers and programming managers.
Ask Paul questions during the course and get answers in real time.
Still have questions? Email Paul after the course at
[email protected].
Courses offered monthly or bimonthly.
C++20 Core Language Full Throttle.
C++20 Standard Libraries Full Throttle.
Python Full Throttle.
Python Data Science Full Throttle.
Java Full Throttle.
College Textbook Versions of C++20 for
Programmers
Available as Pearson interactive eTexts and Revels.
Both formats offer searchable text, video, Checkpoint self-review
questions with answers, flashcards and other student learning
aids.
In addition, Revel offers gradable, interactive, programming and
nonprogramming assessment questions.

Deitel & Associates, Inc. also independently offers customized one-


to five-day live courses delivered virtually over the Internet. Contact
[email protected] for details.
C++20 for Programmers
An Objects-Natural Approach

Paul Deitel • Harvey Deitel

Boston • Columbus • 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: https://informit.com
Library of Congress Control Number: 2021943762
Copyright © 2022 Pearson Education, Inc.
All rights reserved. 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 https://www.pearson.com/permissions/.
Deitel and the double-thumbs-up bug are registered trademarks of
Deitel & Associates, Inc.
Cover design by Paul Deitel, Harvey Deitel, and Chuti Prasertsith
ISBN-13: 978-0-13-690569-1
ISBN-10: 0-13-690569-2
ScoutAutomatedPrintCode
Pearson’s Commitment to Diversity, Equity,
and Inclusion
Pearson is dedicated to creating bias-free content that reflects the
diversity of all learners. We embrace the many dimensions of
diversity, including but not limited to race, ethnicity, gender,
socioeconomic status, ability, age, sexual orientation, and religious
or political beliefs.
Education is a powerful force for equity and change in our world. It
has the potential to deliver opportunities that improve lives and
enable economic mobility. As we work with authors to create content
for every product and service, we acknowledge our responsibility to
demonstrate inclusivity and incorporate diverse scholarship so that
everyone can achieve their potential through learning. As the world’s
leading learning company, we have a duty to help drive change and
live up to our purpose to help more people create a better life for
themselves and to create a better world.
Our ambition is to purposefully contribute to a world where:
Everyone has an equitable and lifelong opportunity to succeed
through learning.
Our educational products and services are inclusive and
represent the rich diversity of learners.
Our educational content accurately reflects the histories and
experiences of the learners we serve.
Our educational content prompts deeper discussions with
learners and motivates them to expand their own learning (and
worldview).

While we work hard to present unbiased content, we want to hear


from you about any concerns or needs with this Pearson product so
that we can investigate and address them. Please contact us with
concerns about any potential bias at
Click here to view code image
https://www.pearson.com/report-bias.html
To the Members of the ISO C++ Standards Committee:
For your efforts in evolving the world’s
preeminent language for programming
high-performance, mission-critical and
business-critical applications.

Paul Deitel
Harvey Deitel
Contents

Preface

Before You Begin

1 Intro and Test-Driving Popular, Free C++ Compilers


1.1 Introduction
1.2 Test-Driving a C++20 Application
1.2.1 Compiling and Running a C++20 Application with
Visual Studio 2022 Community Edition on Windows
1.2.2 Compiling and Running a C++20 Application with
Xcode on macOS
1.2.3 Compiling and Running a C++20 Application with GNU
C++ on Linux
1.2.4 Compiling and Running a C++20 Application with g++
in the GCC Docker Container
1.2.5 Compiling and Running a C++20 Application with
clang++ in a Docker Container
1.3 Moore’s Law, Multi-Core Processors and Concurrent
Programming
1.4 A Brief Refresher on Object Orientation
1.5 Wrap-Up

2 Intro to C++20 Programming


2.1 Introduction
2.2 First Program in C++: Displaying a Line of Text
2.3 Modifying Our First C++ Program
2.4 Another C++ Program: Adding Integers
2.5 Arithmetic
2.6 Decision Making: Equality and Relational Operators
2.7 Objects Natural: Creating and Using Objects of Standard-
Library Class string
2.8 Wrap-Up

3 Control Statements: Part 1


3.1 Introduction
3.2 Control Structures
3.2.1 Sequence Structure
3.2.2 Selection Statements
3.2.3 Iteration Statements
3.2.4 Summary of Control Statements
3.3 if Single-Selection Statement
3.4 if…else Double-Selection Statement
3.4.1 Nested if…else Statements
3.4.2 Blocks
3.4.3 Conditional Operator (?:)
3.5 while Iteration Statement
3.6 Counter-Controlled Iteration
3.6.1 Implementing Counter-Controlled Iteration
3.6.2 Integer Division and Truncation
3.7 Sentinel-Controlled Iteration
3.7.1 Implementing Sentinel-Controlled Iteration
3.7.2 Converting Between Fundamental Types Explicitly and
Implicitly
3.7.3 Formatting Floating-Point Numbers
3.8 Nested Control Statements
3.8.1 Problem Statement
3.8.2 Implementing the Program
3.8.3 Preventing Narrowing Conversions with Braced
Initialization
3.9 Compound Assignment Operators
3.10 Increment and Decrement Operators
3.11 Fundamental Types Are Not Portable
3.12 Objects-Natural Case Study: Arbitrary-Sized Integers
3.13 C++20: Text Formatting with Function format
3.14 Wrap-Up

4 Control Statements: Part 2


4.1 Introduction
4.2 Essentials of Counter-Controlled Iteration
4.3 for Iteration Statement
4.4 Examples Using the for Statement
4.5 Application: Summing Even Integers
4.6 Application: Compound-Interest Calculations
4.7 do…while Iteration Statement
4.8 switch Multiple-Selection Statement
4.9 C++17 Selection Statements with Initializers
4.10 break and continue Statements
4.11 Logical Operators
4.11.1 Logical AND (&&) Operator
4.11.2 Logical OR (||) Operator
4.11.3 Short-Circuit Evaluation
4.11.4 Logical Negation (!) Operator
4.11.5 Example: Producing Logical-Operator Truth Tables
4.12 Confusing the Equality (==) and Assignment (=) Operators
4.13 Objects-Natural Case Study: Using the miniz-cpp Library
to Write and Read ZIP files
4.14 C++20 Text Formatting with Field Widths and Precisions
4.15 Wrap-Up
5 Functions and an Intro to Function Templates
5.1 Introduction
5.2 C++ Program Components
5.3 Math Library Functions
5.4 Function Definitions and Function Prototypes
5.5 Order of Evaluation of a Function’s Arguments
5.6 Function-Prototype and Argument-Coercion Notes
5.6.1 Function Signatures and Function Prototypes
5.6.2 Argument Coercion
5.6.3 Argument-Promotion Rules and Implicit Conversions
5.7 C++ Standard Library Headers
5.8 Case Study: Random-Number Generation
5.8.1 Rolling a Six-Sided Die
5.8.2 Rolling a Six-Sided Die 60,000,000 Times
5.8.3 Seeding the Random-Number Generator
5.8.4 Seeding the Random-Number Generator with
random_device
5.9 Case Study: Game of Chance; Introducing Scoped enums
5.10 Scope Rules
5.11 Inline Functions
5.12 References and Reference Parameters
5.13 Default Arguments
5.14 Unary Scope Resolution Operator
5.15 Function Overloading
5.16 Function Templates
5.17 Recursion
5.18 Example Using Recursion: Fibonacci Series
5.19 Recursion vs. Iteration
5.20 Lnfylun Lhqtomh Wjtz Qarcv: Qjwazkrplm xzz Xndmwwqhlz
5.21 Wrap-Up
6 arrays, vectors, Ranges and Functional-Style
Programming
6.1 Introduction
6.2 arrays
6.3 Declaring arrays
6.4 Initializing array Elements in a Loop
6.5 Initializing an array with an Initializer List
6.6 C++11 Range-Based for and C++20 Range-Based for with
Initializer
6.7 Calculating array Element Values and an Intro to
constexpr
6.8 Totaling array Elements
6.9 Using a Primitive Bar Chart to Display array Data
Graphically
6.10 Using array Elements as Counters
6.11 Using arrays to Summarize Survey Results
6.12 Sorting and Searching arrays
6.13 Multidimensional arrays
6.14 Intro to Functional-Style Programming
6.14.1 What vs. How
6.14.2 Passing Functions as Arguments to Other Functions:
Introducing Lambda Expressions
6.14.3 Filter, Map and Reduce: Intro to C++20’s Ranges
Library
6.15 Objects-Natural Case Study: C++ Standard Library Class
Template vector
6.16 Wrap-Up

7 (Downplaying) Pointers in Modern C++


7.1 Introduction
7.2 Pointer Variable Declarations and Initialization
7.2.1 Declaring Pointers
7.2.2 Initializing Pointers
7.2.3 Null Pointers Before C++11
7.3 Pointer Operators
7.3.1 Address (&) Operator
7.3.2 Indirection (*) Operator
7.3.3 Using the Address (&) and Indirection (*) Operators
7.4 Pass-by-Reference with Pointers
7.5 Built-In Arrays
7.5.1 Declaring and Accessing a Built-In Array
7.5.2 Initializing Built-In Arrays
7.5.3 Passing Built-In Arrays to Functions
7.5.4 Declaring Built-In Array Parameters
7.5.5 C++11 Standard Library Functions begin and end
7.5.6 Built-In Array Limitations
7.6 Using C++20 to_array to Convert a Built-In Array to a
std::array
7.7 Using const with Pointers and the Data Pointed To
7.7.1 Using a Nonconstant Pointer to Nonconstant Data
7.7.2 Using a Nonconstant Pointer to Constant Data
7.7.3 Using a Constant Pointer to Nonconstant Data
7.7.4 Using a Constant Pointer to Constant Data
7.8 sizeof Operator
7.9 Pointer Expressions and Pointer Arithmetic
7.9.1 Adding Integers to and Subtracting Integers from
Pointers
7.9.2 Subtracting One Pointer from Another
7.9.3 Pointer Assignment
7.9.4 Cannot Dereference a void*
7.9.5 Comparing Pointers
7.10 Objects-Natural Case Study: C++20 spans—Views of
Contiguous Container Elements
7.11 A Brief Intro to Pointer-Based Strings
7.11.1 Command-Line Arguments
7.11.2 Revisiting C++20’s to_array Function
7.12 Looking Ahead to Other Pointer Topics
7.13 Wrap-Up

8 strings, string_views, Text Files, CSV Files and Regex


8.1 Introduction
8.2 string Assignment and Concatenation
8.3 Comparing strings
8.4 Substrings
8.5 Swapping strings
8.6 string Characteristics
8.7 Finding Substrings and Characters in a string
8.8 Replacing and Erasing Characters in a string
8.9 Inserting Characters into a string
8.10 C++11 Numeric Conversions
8.11 C++17 string_view
8.12 Files and Streams
8.13 Creating a Sequential File
8.14 Reading Data from a Sequential File
8.15 C++14 Reading and Writing Quoted Text
8.16 Updating Sequential Files
8.17 String Stream Processing
8.18 Raw String Literals
8.19 Objects-Natural Case Study: Reading and Analyzing a CSV
File Containing Titanic Disaster Data
8.19.1 Using rapidcsv to Read the Contents of a CSV File
8.19.2 Reading and Analyzing the Titanic Disaster Dataset
8.20 Objects-Natural Case Study: Intro to Regular Expressions
8.20.1 Matching Complete Strings to Patterns
8.20.2 Replacing Substrings
8.20.3 Searching for Matches
8.21 Wrap-Up

9 Custom Classes
9.1 Introduction
9.2 Test-Driving an Account Object
9.3 Account Class with a Data Member and Set and Get
Member Functions
9.3.1 Class Definition
9.3.2 Access Specifiers private and public
9.4 Account Class: Custom Constructors
9.5 Software Engineering with Set and Get Member Functions
9.6 Account Class with a Balance
9.7 Time Class Case Study: Separating Interface from
Implementation
9.7.1 Interface of a Class
9.7.2 Separating the Interface from the Implementation
9.7.3 Class Definition
9.7.4 Member Functions
9.7.5 Including the Class Header in the Source-Code File
9.7.6 Scope Resolution Operator (::)
9.7.7 Member Function setTime and Throwing Exceptions
9.7.8 Member Functions to24HourString and
to12HourString
9.7.9 Implicitly Inlining Member Functions
9.7.10 Member Functions vs. Global Functions
9.7.11 Using Class Time
9.7.12 Object Size
9.8 Compilation and Linking Process
9.9 Class Scope and Accessing Class Members
9.10 Access Functions and Utility Functions
9.11 Time Class Case Study: Constructors with Default
Arguments
9.11.1 Class Time
9.11.2 Overloaded Constructors and C++11 Delegating
Constructors
9.12 Destructors
9.13 When Constructors and Destructors Are Called
9.14 Time Class Case Study: A Subtle Trap —Returning a
Reference or a Pointer to a private Data Member
9.15 Default Assignment Operator
9.16 const Objects and const Member Functions
9.17 Composition: Objects as Members of Classes
9.18 friend Functions and friend Classes
9.19 The this Pointer
9.19.1 Implicitly and Explicitly Using the this Pointer to
Access an Object’s Data Members
9.19.2 Using the this Pointer to Enable Cascaded Function
Calls
9.20 static Class Members: Classwide Data and Member
Functions
9.21 Aggregates in C++20
9.21.1 Initializing an Aggregate
9.21.2 C++20: Designated Initializers
9.22 Objects-Natural Case Study: Serialization with JSON
9.22.1 Serializing a vector of Objects Containing public
Data
9.22.2 Serializing a vector of Objects Containing private
Data
9.23 Wrap-Up

10 OOP: Inheritance and Runtime Polymorphism


10.1 Introduction
10.2 Base Classes and Derived Classes
10.2.1 CommunityMember Class Hierarchy
10.2.2 Shape Class Hierarchy and public Inheritance
10.3 Relationship Between Base and Derived Classes
10.3.1 Creating and Using a SalariedEmployee Class
10.3.2 Creating a SalariedEmployee–
SalariedCommissionEmployee Inheritance Hierarchy
10.4 Constructors and Destructors in Derived Classes
10.5 Intro to Runtime Polymorphism: Polymorphic Video Game
10.6 Relationships Among Objects in an Inheritance Hierarchy
10.6.1 Invoking Base-Class Functions from Derived-Class
Objects
10.6.2 Aiming Derived-Class Pointers at Base-Class Objects
10.6.3 Derived-Class Member-Function Calls via Base-Class
Pointers
10.7 Virtual Functions and Virtual Destructors
10.7.1 Why virtual Functions Are Useful
10.7.2 Declaring virtual Functions
10.7.3 Invoking a virtual Function
10.7.4 virtual Functions in the SalariedEmployee
Hierarchy
10.7.5 virtual Destructors
10.7.6 final Member Functions and Classes
10.8 Abstract Classes and Pure virtual Functions
10.8.1 Pure virtual Functions
10.8.2 Device Drivers: Polymorphism in Operating Systems
10.9 Case Study: Payroll System Using Runtime Polymorphism
10.9.1 Creating Abstract Base Class Employee
10.9.2 Creating Concrete Derived Class
SalariedEmployee
10.9.3 Creating Concrete Derived Class
CommissionEmployee
10.9.4 Demonstrating Runtime Polymorphic Processing
10.10 Runtime Polymorphism, Virtual Functions and Dynamic
Binding “Under the Hood“
10.11 Non-Virtual Interface (NVI) Idiom
10.12 Program to an Interface, Not an Implementation
10.12.1 Rethinking the Employee Hierarchy—
CompensationModel Interface
10.12.2 Class Employee
10.12.3 CompensationModel Implementations
10.12.4 Testing the New Hierarchy
10.12.5 Dependency Injection Design Benefits
10.13 Runtime Polymorphism with std::variant and
std::visit
10.14 Multiple Inheritance
10.14.1 Diamond Inheritance
10.14.2 Eliminating Duplicate Subobjects with virtual
Base-Class Inheritance
10.15 protected Class Members: A Deeper Look
10.16 public, protected and private Inheritance
10.17 More Runtime Polymorphism Techniques; Compile-Time
Polymorphism
10.17.1 Other Runtime Polymorphism Techniques
10.17.2 Compile-Time (Static) Polymorphism Techniques
10.17.3 Other Polymorphism Concepts
10.18 Wrap-Up

11 Operator Overloading, Copy/Move Semantics and


Smart Pointers
11.1 Introduction
11.2 Using the Overloaded Operators of Standard Library Class
string
11.3 Operator Overloading Fundamentals
11.3.1 Operator Overloading Is Not Automatic
11.3.2 Operators That Cannot Be Overloaded
11.3.3 Operators That You Do Not Have to Overload
11.3.4 Rules and Restrictions on Operator Overloading
11.4 (Downplaying) Dynamic Memory Management with new and
delete
11.5 Modern C++ Dynamic Memory Management: RAII and
Smart Pointers
11.5.1 Smart Pointers
11.5.2 Demonstrating unique_ptr
11.5.3 unique_ptr Ownership
11.5.4 unique_ptr to a Built-In Array
11.6 MyArray Case Study: Crafting a Valuable Class with
Operator Overloading
11.6.1 Special Member Functions
11.6.2 Using Class MyArray
11.6.3 MyArray Class Definition
11.6.4 Constructor That Specifies a MyArray’s Size
11.6.5 C++11 Passing a Braced Initializer to a Constructor
11.6.6 Copy Constructor and Copy Assignment Operator
11.6.7 Move Constructor and Move Assignment Operator
11.6.8 Destructor
11.6.9 toString and size Functions
11.6.10 Overloading the Equality (==) and Inequality (!=)
Operators
11.6.11 Overloading the Subscript ([]) Operator
11.6.12 Overloading the Unary bool Conversion Operator
11.6.13 Overloading the Preincrement Operator
11.6.14 Overloading the Postincrement Operator
11.6.15 Overloading the Addition Assignment Operator (+=)
11.6.16 Overloading the Binary Stream Extraction (>>) and
Stream Insertion (<<) Operators
11.6.17 friend Function swap
11.7 C++20 Three-Way Comparison Operator (<=>)
11.8 Converting Between Types
11.9 explicit Constructors and Conversion Operators
11.10 Overloading the Function Call Operator ()
11.11 Wrap-Up

12 Exceptions and a Look Forward to Contracts


12.1 Introduction
12.2 Exception-Handling Flow of Control
12.2.1 Defining an Exception Class to Represent the Type of
Problem That Might Occur
12.2.2 Demonstrating Exception Handling
12.2.3 Enclosing Code in a try Block
12.2.4 Defining a catch Handler for
DivideByZeroExceptions
12.2.5 Termination Model of Exception Handling
12.2.6 Flow of Control When the User Enters a Nonzero
Denominator
12.2.7 Flow of Control When the User Enters a Zero
Denominator
12.3 Exception Safety Guarantees and noexcept
12.4 Rethrowing an Exception
12.5 Stack Unwinding and Uncaught Exceptions
12.6 When to Use Exception Handling
12.6.1 assert Macro
12.6.2 Failing Fast
12.7 Constructors, Destructors and Exception Handling
12.7.1 Throwing Exceptions from Constructors
12.7.2 Catching Exceptions in Constructors via Function try
Blocks
12.7.3 Exceptions and Destructors: Revisiting
noexcept(false)
12.8 Processing new Failures
12.8.1 new Throwing bad_alloc on Failure
12.8.2 new Returning nullptr on Failure
12.8.3 Handling new Failures Using Function
set_new_handler
12.9 Standard Library Exception Hierarchy
12.10 C++’s Alternative to the finally Block: Resource
Acquisition Is Initialization (RAII)
12.11 Some Libraries Support Both Exceptions and Error Codes
12.12 Logging
12.13 Looking Ahead to Contracts
12.14 Wrap-Up

13 Standard Library Containers and Iterators


13.1 Introduction
13.2 Introduction to Containers
13.2.1 Common Nested Types in Sequence and Associative
Containers
13.2.2 Common Container Member and Non-Member
Functions
13.2.3 Requirements for Container Elements
13.3 Working with Iterators
13.3.1 Using istream_iterator for Input and
ostream_iterator for Output
13.3.2 Iterator Categories
13.3.3 Container Support for Iterators
13.3.4 Predefined Iterator Type Names
13.3.5 Iterator Operators
13.4 A Brief Introduction to Algorithms
13.5 Sequence Containers
13.6 vector Sequence Container
13.6.1 Using vectors and Iterators
13.6.2 vector Element-Manipulation Functions
13.7 list Sequence Container
13.8 deque Sequence Container
13.9 Associative Containers
13.9.1 multiset Associative Container
13.9.2 set Associative Container
13.9.3 multimap Associative Container
13.9.4 map Associative Container
13.10 Container Adaptors
13.10.1 stack Adaptor
13.10.2 queue Adaptor
13.10.3 priority_queue Adaptor
13.11 bitset Near Container
13.12 Optional: A Brief Intro to Big O
13.13 Optional: A Brief Intro to Hash Tables
13.14 Wrap-Up

14 Standard Library Algorithms and C++20 Ranges &


Views
14.1 Introduction
14.2 Algorithm Requirements: C++20 Concepts
14.3 Lambdas and Algorithms
14.4 Algorithms
14.4.1 fill, fill_n, generate and generate_n
14.4.2 equal, mismatch and
lexicographical_compare
14.4.3 remove, remove_if, remove_copy and
remove_copy_if
14.4.4 replace, replace_if, replace_copy and
replace_copy_if
14.4.5 Shuffling, Counting, and Minimum and Maximum
Element Algorithms
14.4.6 Searching and Sorting Algorithms
14.4.7 swap, iter_swap and swap_ranges
14.4.8 copy_backward, merge, unique, reverse,
copy_if and copy_n
14.4.9 inplace_merge, unique_copy and
reverse_copy
14.4.10 Set Operations
14.4.11 lower_bound, upper_bound and equal_range
14.4.12 min, max and minmax
14.4.13 Algorithms gcd, lcm, iota, reduce and
partial_sum from Header <numeric>
14.4.14 Heapsort and Priority Queues
14.5 Function Objects (Functors)
14.6 Projections
14.7 C++20 Views and Functional-Style Programming
14.7.1 Range Adaptors
14.7.2 Working with Range Adaptors and Views
14.8 Intro to Parallel Algorithms
14.9 Standard Library Algorithm Summary
14.10 A Look Ahead to C++23 Ranges
14.11 Wrap-Up

15 Templates, C++20 Concepts and Metaprogramming


15.1 Introduction
15.2 Custom Class Templates and Compile-Time Polymorphism
15.3 C++20 Function Template Enhancements
15.3.1 C++20 Abbreviated Function Templates
15.3.2 C++20 Templated Lambdas
15.4 C++20 Concepts: A First Look
15.4.1 Unconstrained Function Template multiply
15.4.2 Constrained Function Template with a C++20
Concepts requires Clause
15.4.3 C++20 Predefined Concepts
15.5 Type Traits
15.6 C++20 Concepts: A Deeper Look
15.6.1 Creating a Custom Concept
15.6.2 Using a Concept
15.6.3 Using Concepts in Abbreviated Function Templates
15.6.4 Concept-Based Overloading
15.6.5 requires Expressions
15.6.6 C++20 Exposition-Only Concepts
15.6.7 Techniques Before C++20 Concepts: SFINAE and
Tag Dispatch
15.7 Testing C++20 Concepts with static_assert
15.8 Creating a Custom Algorithm
15.9 Creating a Custom Container and Iterators
15.9.1 Class Template ConstIterator
15.9.2 Class Template Iterator
15.9.3 Class Template MyArray
15.9.4 MyArray Deduction Guide for Braced Initialization
15.9.5 Using MyArray and Its Custom Iterators with
std::ranges Algorithms
15.10 Default Arguments for Template Type Parameters
15.11 Variable Templates
15.12 Variadic Templates and Fold Expressions
15.12.1 tuple Variadic Class Template
15.12.2 Variadic Function Templates and an Intro to C++17
Fold Expressions
15.12.3 Types of Fold Expressions
15.12.4 How Unary-Fold Expressions Apply Their Operators
15.12.5 How Binary-Fold Expressions Apply Their Operators
15.12.6 Using the Comma Operator to Repeatedly Perform
an Operation
15.12.7 Constraining Parameter Pack Elements to the Same
Type
15.13 Template Metaprogramming
15.13.1 C++ Templates Are Turing Complete
15.13.2 Computing Values at Compile-Time
15.13.3 Conditional Compilation with Template
Metaprogramming and constexpr if
15.13.4 Type Metafunctions
15.14 Wrap-Up

16 C++20 Modules: Large-Scale Development


16.1 Introduction
16.2 Compilation and Linking Before C++20
16.3 Advantages and Goals of Modules
16.4 Example: Transitioning to Modules—Header Units
16.5 Modules Can Reduce Translation Unit Sizes and Compilation
Times
16.6 Example: Creating and Using a Module
16.6.1 module Declaration for a Module Interface Unit
16.6.2 Exporting a Declaration
16.6.3 Exporting a Group of Declarations
16.6.4 Exporting a namespace
16.6.5 Exporting a namespace Member
16.6.6 Importing a Module to Use Its Exported Declarations
16.6.7 Example: Attempting to Access Non-Exported Module
Contents
16.7 Global Module Fragment
16.8 Separating Interface from Implementation
16.8.1 Example: Module Implementation Units
16.8.2 Example: Modularizing a Class
16.8.3 :private Module Fragment
16.9 Partitions
Discovering Diverse Content Through
Random Scribd Documents
nada quer saber do governo! Assim os vereis hoje em solemnes
relatorios declarar a patria á beira de um abysmo, e ámanhan com
egual entono chamar a Portugal um primor, á sua condição
abençoada! Virarem os cataventos politicos, é caso vulgar, individual
apenas, em regimes anarchicos; mas girar de tal modo a opinião
sobre os proprios sentimentos essenciaes de uma nação, senão é
unico, é raro: hoje ibericos, ámanhan nacionalistas; hoje tudo negro,
ámanhan tudo azul; hoje arruinados, ámanhan opulentos—quem
vos entende, ó sabia gente?
Entende-vos o critico, vendo n’este agitar de opiniões como as
rasteiras nuvens de poeira tonta que ás vezes o vento se diverte a
mover sobre uma larga campina: indifferente, o chão fica immovel.
Assim os ministerios succedem aos ministerios sem haver mudança.
E que alteração poderia dar-se, não existindo forças moraes vivas,
nem questões economicas ardentes? Que outra cousa ha a fazer
senão ir, mansamente, deixando o tempo correr: dando
melhoramentos ao campo, consolidando no Thesouro os dinheiros
do Brazil, despachando o expediente, comprando algumas armas e
navios por distracção ou simplez? Não falta quem sinceramente
creia serem as cousas de sua natureza assim, assim as nações-a-
valer, assim o mundo, assim a realidade. O resto? sonhos de
poetas, bilis de homens amarellidos! Vamos indo assim, que vamos
bem.
Outros pensam, comtudo, de um modo diverso. Ha nos seus
postos, egualmente distantes, egualmente desarraigados da nação,
o pessoal inteiro da Republica salvadora, scientifica, patriota,
federalista, vermelhissima. Quem observa, descobre logo; um é
Robespierre, outro um soffrivel Marat; não falta Desmoulins, e
Theroigne de Mericourt já préga ás massas. É um velho cliché
jacobino, sem Danton, é verdade! um velho cliché jacobino
envernizado de novo. É tambem uma poeirada que passa; mas
quando a atmosphera está incerta, de um para outro momento vem
um aguaceiro que precipita o pó, e pousa sobre o chão uma camada
de lodo. O tempo a seccará breve, o vento a levantará outra vez em
pó, mas entretanto mais de um se ha de atolar.
É provavel essa revolução possivel? Talvez; porque a nação não
tem força para a impedir, e os conservadores vivem da fraqueza
alheia e não de energia propria. Talvez, porque, se não ha quem a
evite, as cousas concorrem para a provocar. Será proxima?
Ninguem o póde dizer: é materia de acaso. Tanto póde ser
ámanhan, como d’aqui a bastantes annos. Todos concordam em
que isto, se não houver tropeços, ainda póde durar. Quem sabe se
os demagogos de hoje ficarão na historia como os da geração
precedente, acantonados pela força das cousas nas mesas das
secretarias?
Talvez assim venha a succeder, e talvez não. Ha poucos annos
dizia alguem que estavamos «a pedir bispo». Tenha de haver outra
janeirinha, e bispo será a quéda da monarchia constitucional. Em 28
rebentou em furias o tumor historico portuguez; e para essa data
futura uma puncção vasará a agua que existe no ventre da
hydropica Liberdade. Ver-se ha então como cheira e a que sabe.
Esse incidente politico é necessario por varias causas, particulares e
geraes. As primeiras demandam estudo mais demorado a que
passaremos já; as segundas estão na atmosphera que as nações
latinas respiram actualmente, atmosphera viciada mais ainda entre
nós pela desordem intellectual atraz esboçada.
O jacobinismo não acabou ainda. Como um camaleão, quando
vestiu a côr do romantismo fez-se monarchia parlamentar; mas falta
que se faça outra vez republica radical, federalista, naturalista,
positivista, porque, sem ter consummado a destruição dos velhos
symbolos, a sua missão não terminou. O organismo futuro das
nações não poderá formar-se emquanto o velho organismo não tiver
acabado de se dissolver inteiramente pelo classico aphorismo:
corpora non agunt nisi soluta.
Só depois d’isso se reconstituirá o Estado e a democracia achará
a definição que vem pedindo ha um seculo, sem a encontrar. Vox
clamantis in deserto, ninguem lhe responde, por isso que a idéa
individualista-espiritualista, conservadora ou jacobinamente
expressa, tyrannisa ainda as intelligencias. Mas já hoje do corpo das
sciencias naturaes sae esta definição: a sociedade é um organismo
vivo, contradizendo a definição de quasi um seculo: a sociedade é
uma ficção, o individuo humano a unica realidade. Esta idéa nova,
que todos os dias conquista partidarios, encontra a contra-prova nos
factos economicos e nas tradições da historia. A civilisação de um
povo apresenta os mesmos phenomenos que a evolução
progressiva de qualquer individuo animal: especialisação de
funcções, definição dos orgãos, cohesão de movimentos,
centralisação de commando. O Estado é como um cerebro.
Ninguem já hoje crê em milagres, e menos do que em nenhum
outro no do direito divino. Entretanto, é mistér vêr, n’essa concepção
transcendente, o symbolo de uma idéa positiva. O espirito collectivo
nunca errou; e a historia não é mais do que a explicação successiva
dos enygmas por milagres symbolicos, e afinal dos milagres pelas
idéas na sua pureza. O direito divino era a expressão religiosa, ou,
se quizerem, metaphysica, da soberania popular. A nação
personalisava-se n’um rei, da mesma fórma que a humanidade se
personalisava n’um Deus-homem. Desde que não ha direito-divino
todos são democratas, isto é, todos põem no povo a origem da
authoridade: resta descobrir as fórmulas adequadas ao exercicio
d’essa authoridade. No direito-divino a fórmula era a hierarchia, a
classe. Na democracia, o criterio é a Egualdade; a fórmula acha-se
na realidade das funcções organicas da sociedade. No direito-divino
rege a vontade da pessoa-symbolo do monarcha; na democracia a
vontade dos cidadãos.
N’este momento se chega pela doutrina á politica, e pela theoria á
practica. De que modo se exprime essa vontade? Viritim,
individualmente, peia somma dos votos? Assim se tem dito; e d’ahi
têem vindo as revoluções, a anarchia, o moderno feodalismo
consequente. Oxalá que a broca da analyse—bella expressão de
Mousinho!—penetre rapido e demonstre que esse processo
confunde deploravelmente a administração com a politica; scinde a
duração e ataca a consistencia indispensaveis aos pensamentos
governativos; põe tudo, todas as cousas mais especiaes, á mercê
das opiniões menos competentes; e torna os interesses collectivos
dependentes dos interesses individuaes amalgamados, chocados,
sem poderem fundir-se n’uma synthese organica.
Sob o nome de democracia existe apenas uma anarchia,
constitucional, sim, quando atravessâmos calmarias politicas, mas
que se desenfreia logo que se levanta o minimo temporal. E a
liberdade consiste em uma concorrencia franca, da qual sae o
consequente feodalismo—bancario, industrial, burocratico. São
factos naturaes, modificados apenas nos aspectos por condições
diversas. Assim, quando o Estado imperial romano decaía até
tombar de todo, se distribuiram as terras a protectores armados;
assim, quando o Estado monarchico acabou, se distribuiram os
instrumentos de força collectiva aos novos barões da finança e da
industria. São dois exemplos de pulverisação da authoridade
collectiva: um violento, o outro pacifico; um sanccionado pelas
armas, o outro pelas leis liberaes: ambos fataes, ambos
espontaneos.
Ora emquanto a nação prescindir de cerebro, isto é, de Estado,
manter-se-ha acephala; emquanto o Estado não tiver como
pensamento a Egualdade, ou emquanto, mantendo-se uma ficção
de poder, se obedecer de facto ás ordens dos patronos das varias
clientelas politicas, bancarias, industriaes; emquanto esses novos
barões fizerem de povo: a Democracia será uma chimera, por isso
mesmo que a nação demonstrará não ter capacidade para ser
senão o que é. Á sombra de uma liberdade sempre crescente, dia a
dia, com o crescer da riqueza, irá crescendo a scizão dos pobres e
dos ricos, em virtude d’essa lei simples que dá a victoria a quem
mais póde.

2.—AS QUESTÕES ECONOMICAS

Resta-nos agora estudar as causas d’essa crise que


provavelmente nos ha de arrastar á revolução, pois no conjuncto
singular dos caracteres nacionaes nem se vêem elementos com
juizo bastante para evitar o conflicto, nem facções com energia
capaz de derrubar o existente. Os Saldanha morreram todos; e se
na ultima saldanhada de 19 de maio se viu como seria facil uma
revolução, é facto que se acabou a tradição dos golpes-de-mão da
soldadesca, especie quasi unica das revoluções em Portugal. Quem
nos leva para a crise são as causas geraes, e uma fatalidade
superior ás forças de conservadores e demagogos.
Este sentimento arraigado, geral nas classes médias, esta
convicção de um destino desastrado, commum nos homens de
governo, são tambem um symptoma particular que a apathia
nacional explica; bastando a basofia portugueza para nos explicar a
simplez com que alguns teimam em se convencer de que somos um
povo feliz, rico, ditoso. Quando a opinião assim gira do norte ao sul,
e desembaraçada de preoccupações partidarias, não é verdade que
os seus dois pólos mostram por fórmas diversas uma enfermidade
constante?
E, entretanto, póde-se ser nobre, feliz, honrado e até forte na
pobreza. A opulencia é até certo ponto indifferente ao mero facto da
existencia das nações. Mas não é decerto indifferente ao seu
progresso, mormente quando se ficou em tamanho atrazo. A
questão da capacidade de enriquecimento em Portugal é complexa.
Tambem, como nós, a Grecia tem população pouco densa, vastos
territorios de serras escalvadas e improductivas; mas tambem, como
nós, tem no ingresso das riquezas das suas colonias commerciaes
mediterraneas, o que nós temos no ingresso das fortunas dos
brazileiros. É uma fonte de riqueza anormal. Com effeito, desde que
as nossas guerras civis acabaram, desde que por outro lado a
independencia do Brazil se consolidou, a emigração e a repatriação
funccionando regularmente,[42] deram em resultado um affluxo
consideravel de dinheiro. Junte-se-lhe o que entra por via de
emprestimos ao Thesouro, e teremos as principaes causas do
enriquecimento relativo da nação, se nos lembrarmos tambem das
leis que desamortisaram o resto da mão-morta e aboliram os
vinculos.
Que se póde ser ao mesmo tempo rico e incapaz, demonstra-o a
qualquer a observação do proximo. As nações são n’este ponto
como os homens. De 51-2 para 78-9 o valor do nosso commercio e
o rendimento das nossas alfandegas triplicaram; mas para prevenir
os optimistas convém dizer que, ainda triplo, não vae além de
13:500 rs. a capitação do nosso commercio externo: quasi o mesmo
que em 1818, já depois dos francezes,[43] e sem contar com a
subida do valor dos generos, proveniente do da diminuição do valor
da moeda. Não exageremos pois a nossa fortuna. E menos o
devemos fazer ainda, quando observarmos que, sem uma crise,
sem uma guerra, apenas com estradas e caminhos deferro; sem
justificação cabal, a não ser a do nosso desgoverno, nos temos
endividado de modo que, se em 54 cada portuguez pagava 600 rs.,
cada portuguez paga por anno, em 79-80, rs. 3:077 de juros da
divida nacional.
Não ha duvida que a riqueza collectiva tende a crescer, embora o
accrescimo da população seja lento: outrotanto succede em França,
e todos sabem que os dois movimentos podem não corresponder,
podem ser até inversos. É de esperar, comtudo, que em outro
quarto de seculo triplique ainda? De certo não. Houve causas
especiaes que determinaram um salto, e ha causas organicas a
impedir as progressões rapidas, só com effeito observaveis nos
paizes onde a industria occasiona uma singular condensação de
riqueza, como na Inglaterra, na Belgica, na França do norte, na
Alsacia, etc. Os paizes principalmente agricolas só enriquecem
lentamente. A nós succede-nos que, além de nos faltar o carvão,
materia prima industrial, nos faltam materias primas
incomparavelmente mais graves ainda: juizo, saber, educação
adquirida, tradição ganha, firmeza no governo e intelligencia no
capital. Todas estas faltas essenciaes, e o avanço ganho pelos
outros povos da Europa, affigura-se-nos condemnarem-nos a ficar
decididamente occupados em lavrar terras e emigrar para o Brazil.
Os lucros agricolas e o dinheiro dos repatriados são o mais liquido
das nossas economias nacionaes. A tentativa fabril do setembrismo
não foi mais feliz do que a pombalina; e o vapor matou a nossa
industria historica de transportes maritimos, porque tambem fomos
uma Grecia marinheira, no extremo opposto da Europa. Estava na
natureza da Regeneração o ser livre-cambista: esse proto-
naturalismo ainda não definira as nações como organismos: via
apenas massas, e a circulação livre como vivificação. O meio
atrophia e extingue muitas especies; e contra a influencia d’elle
reagem os cruzamentos, as domesticações, todas as artes
humanas. A sociedade é em grande parte um producto d’ellas; e
tambem o homem é um animal domesticado por si proprio.[44]
Regenerada á solta lei da natureza, a nação vê que, em parte
consideravel, a riqueza creada sobre ella não lhe aproveita. Os
caminhos de ferro que não são do Estado, pertencem a
estrangeiros; a estrangeiros o melhor das nossas minas;
estrangeiros levam e trazem o que mandamos e recebemos por
mar. Só o solo nos pertence, só o liquido do rendimento agricola nos
enriquece? Não. Á fartura de uma população rural ignorante, junta-
se a opulencia das classes capitalistas de Lisboa e das cidades do
norte, não mais culta, porém mais videira. Uma granja e um banco:
eis o Portugal, portuguez. Onde está a officina? E sem esta funcção
eminente do organismo economico não ha nações. Póde haver
populações provinciaes; póde haver Monacos; mas falta um orgão á
circulação, um membro ao corpo humano. Um povo constituido em
nação é como um abecedario: todas as lettras lhe são necessarias
para escrever o que pensa.
E como em Portugal faltam lettras, os escriptos portuguezes não
se entendem. Assim as populações ruraes e as urbanas, a
propriedade e o capital, sem o nexo da industria, isoladas, não se
penetram. Se o capitalista compra terras, é para as arrendar,
vivendo sempre do juro. E capitalista e proprietario, provinciano um,
cosmopolita o outro, nenhum sente palpitar em si a alma da nação.
Um olha para os milhos, o outro para os papeis, absorvidos ambos
no seu interesse egoista, indifferentes a tudo o mais. A economia
consumma de tal fórma o que a historia preparou: o governo é um
rifacimento. Os politicos são uma classe áparte; as finanças e o
Estado um outro, um extranho a que o proprietario pede
melhoramentos e o capitalista juros. Como corretor, o politico, de
permeio, recebe de um os emprestimos, dá aos outros as obras, e
vive da corretagem. Proclama pois a excellencia de tudo, e quando
apregôa o credito que temos lá fóra, esquece dizer que os
banqueiros de Paris são tambem outros corretores que sabem o
destino final dos papeis em mais ou menos breve praso: a burra do
brazileiro.
Que se lhe dá o proprietario do que passa em Lisboa? Imagina
com razão que nada lhe arrancará d’alli ao pé o caminho-de-ferro ou
a estrada. E ao capitalista que se lhe dá? Os jurinhos vão vindo;
rabiscando por aqui, por ali, jogando um pouco, assignando
emprestimos, creando o seu banco, etc. vive bem, satisfeito, os
annos que lhe restam. É positivo e pratico, como os que não vêem
um dedo adiante do nariz. E finalmente o politico, esfregando as
mãos, demonstra em discursos e relatorios que se não póde ir
melhor: os rendimentos crescem: vejam! Como é grande o nosso
paiz! E a platéa de Sanchos, mas sem ironia sequer, Sanchos
conservadores, Sanchos demagogos, Sanchos monarchicos e
republicanos, metaphysicos e positivistas, proprietarios e
capitalistas, nobres e burguezes: toda a platéa applaude, grita,
acclama a fortuna do grande reino da Barataria.
Decerto é um desvairado misanthropo, nada moderno, que
contesta o fundamento de acclamações tão unanimes. Desvairado o
que pergunta qual cresce mais: se a receita, se a despeza?
Desvairado o que pergunta com que recursos se fará o que falta: a
instrucção que não temos, as obras publicas de que possuimos
apenas uma amostra. Desvairado, o que indaga a raiz das cousas e
se não contenta com os aspectos. Desvairado, o que pensa no que
seria de nós se o brazileiro desconfiasse, e deixasse de comprar a
divida com que saldamos contas annualmente; ou se uma guerra,
outra crise na America, embaraçasse o ingresso dos capitães.[45]
Desvairado o que pergunta o que será de nós então: que fazer de
toda a gente: orfans, viuvas, hospicios, asylos, hospitaes, com os
seus fundos convertidos em papel do Estado? Então, na crise da
penuria, se observará a limpo a verdade da confiança!
E entretanto essa crise affigura-se a espiritos desvairados como o
nosso, tão fatal, tão necessaria como a crise constitucional, e muito
mais séria do que ella. Se a nossa liberdade é a expressão da
nossa absoluta anemia politica, a nossa fortuna apparente exprime
a nossa cegueira economica. E assim como a todos convém não
bolir na constituição, assim convém a todos que se não bula na
reputação de ricos. Como ao enfermo ou ao arruinado, sobre tudo
nos convém guardar a immobilidade e as apparencias. Quem lucra
em as negar? Quem tem coragem e força para dizer da tribuna do
governo: peccámos, senhores, peccámos: perdoae-nos! Quem tem
genio para indicar o caminho do arrependimento? As causas vêem
de mais longe: estão na fatalidade das cousas, de que a vontade
dos homens é apenas o instrumento.
E como se haveria de exigir d’elles uma confissão de
arrependimento que os arruinaria a todos? aos politicos nos seus
interesses e vaidades; aos capitalistas nos seus juros e papeis; aos
proprietarios nas urgencias que têem de novos caminhos? Não seria
querer mais do que as forças humanas consentem?
Por uma doirada estrada, tambem se vae para o supplicio. Em
Roma, que pensaria o boi quando o adornavam de collares e faxas
preciosas, para o conduzirem ao altar nos suovetaurilios lustraes?
Como uma rez, nós marchamos todos, seguindo os sacerdotes que
nos levam, perfumados de myrrha, coroados de plantas odoriferas:
bellas phrases, sorrisos de satisfação alegre, passo grave e gesto
largo. Mas em Roma o sacerdote sabia que ia matar o boi: em
Portugal ignora o politico que talvez conduza a nação ao seu fim?
Mede bem o alcance do ponto futuro, inevitavel? O da Regeneração
foi o fim da Liberdade: como se chamará o que nos espera?

3.—AS QUESTÕES GEOGRAPHICAS

Já em outra obra,[46] já em paginas anteriores d’esta, dissemos o


que deviamos ácerca do lugar da nossa terra na Peninsula. E se o
leitor tem presente o que escrevemos, decerto faz uma observação.
É a mais singular das feições singulares que temos
successivamente indicado. Mais ou menos, um ou outro dia, todas
as nações pequenas tiveram a receiar a perda da independencia:
não é isto o que nos particularisa. Em nós succede que, no decurso
de uma historia de já quasi oitocentos annos, é constante o
sentimento, ou de medo, ou de esperança em uma fusão no corpo
da nação visinha. Este oscilar da opinião tambem de norte a sul,
como um catavento, sem estabilidade, não está mostrando a falta
do que quer que é similhante ao lastro que mantém seguros,
enterrados n’agua, os navios? Agora, são guerras feridas para nos
defender, logo planos para nos annexar; agora declamações de odio
a Castella, logo confissões de impotencia no isolamento. E isto vem
assim, durante oito seculos, como these e antithese, que se não
resolvem. Singular! Não parece que, no desdobramento dos nossos
pensamentos collectivos, nunca chegou a formular-se
cathegoricamente o da independencia? Não parece que, no
desenvolvimento do nosso organismo, se por um lado attingimos a
independencia politica, a litteraria, a lingua independente, falta ainda
—faltará sempre?—um que quer que seja bastante, para dar a
populações provincialmente differenciadas, a differenciação radical
que affirma as nações? Um protesto póde ter força para conservar
de pé quem o pronuncia, e a prova é a nossa separação de facto;
mas não é singular que, apezar de ás vezes parecer esquecido o
sentimento de negação e ganhar segurança consciente o da
autonomia: não é singular que, declarada uma crise, appareça
invariavelmente, e até hoje, o espirito nacional dividido entre as
ameaças do patriotismo, as confissões da fraqueza, e as
esperanças da união?
Notado este caracter da nossa historia, ainda patente em nossos
dias, não nos cumpre agora indagar-lhe as causas nem expôr-lhe a
theoria: trata-se de estudar a influencia que póde ter nos destinos
ulteriores da nação.
É fóra de toda a duvida que a Europa se constitue no seculo
actual em um grupo de grandes imperios, cujo contorno definitivo
ainda não está inteiramente desenhado. Varias cousas concorrem
para isso: a complexidade crescente do organismo das nações, a
centralisação de commando consequente, a natureza dos meios de
communicação, de aggressão. N’esta lucta para a vida collectiva
são tambem devorados os pequenos, e por isso, quando causas
imprevistas não venham impôr uma direcção differente ás
tendencias constitucionaes das nações europêas, parece
necessario que n’um periodo mais ou menos distante Portugal e
todas as demais nações minusculas desappareçam.
Não é, comtudo, essa ainda propriamente a questão. Por grande
que seja a nossa basofia e a mania da desproporção com que entre
nós se avalia tudo, é facto que teriamos de obedecer, voluntaria ou
involuntariamente, a um destino geral e necessario. Se o concerto
europeu decretasse, e a Hespanha podesse cumprir o decreto de
absorpção, para onde se havia de appellar? Pelo amôr de Deus,
supprima o leitor aqui as phrases inchadas que a tal respeito
escrevem os jornaes e dizem os deputados: morrer até ao ultimo,
alviões por armas, etc. Tambem os chinezes pensaram fazer parar
as tropas franco-britannicas, vedando-lhes o caminho com monstros
de papel pintado! Mas o palacio de Pekin ardeu.
Não temos exercito digno d’esse nome, é verdade; nem a raia,
nem os portos defendidos. Mas não é essa a questão, porque
havendo vontade e dinheiro o problema resolve-se, ainda que a
relação entre a extensão das fronteiras, terrestres e maritimas, e a
área e população de um reino estreito e longo aggravam as
dificuldades. Embora. O portuguez é, como o turco, um bom
soldado; krupps compram-se; e quando não ha generaes, alugam-
se. Assim nós fizemos sempre: Schomberg, Lippe, Beresford,
Solignac, Bourmont, Napier.—Resta porém dizer que tudo isso seria
em pura perda: a Dinamarca estava armada até aos dentes e bateu-
se denodadamente. Esta hypothese de uma absorpção sentenciada
pelos congressos europeus, é porém relativamente indifferente para
o nosso caso. Está claro que a sentença se cumpriria por vontade
nossa ou per vim. Contra a força não ha resistencia.
O que nos interessa a nós saber, é se da marcha natural das
nossas cousas sairá ou não, declarada uma crise, a perda da
independencia: porque, se não queremos perdel-a, convém tambem
estudar o modo de o conseguir. Ora n’este momento, se escutamos
os pareceres dos homens graves, ve-mo-nos sériamente
embaraçados, porque tambem achamos os pensamentos dos
estadistas correndo como cata-ventos, do norte ao sul, de um polo
ao polo opposto. Singular terra em que tudo gira á mercê do vento,
e permanentemente se discute a propria raiz da vida nacional! Não
se diria que ella, arrancada do solo, batida pelo ar, sem alimento, se
mirra?
Mousinho e Palmella, na crise da primeira metade do seculo,
tiveram opiniões oppostas; e durante a paz da segunda metade
essas duas opiniões continuam antagonicas. Um dizia que, perdido
o Brazil, nós perderamos os elementos de vida independente: D.
João vi chamava a isto o seu canapé da Europa. Outros, variando
agora sobre o mesmo thema, apoiam o parecer quando declaram
indispensavel á vida portugueza fazer da Africa um novo Brazil.—De
outro lado, com sérios argumentos, mostra-se a differença dos
tempos e dos meios, e condemnando-se o dinheiro gasto nas
colonias—dinheiro perdido!—repete-se a opinião de Mousinho,
affirmando-se que qualquer porção de gente, trabalhando e vivendo
em qualquer zona de territorio, póde constituir uma nação: Portugal
tem dentro de si, na Europa, elementos de vida e prosperidade!—
Não será facilimo destruir os argumentos de uns pelos dos outros, e
concluir por uma negação total? Talvez se chamasse temerario, e
decerto se lapidaria quem o fizesse. Mas o que é necessario
affirmar, embora chovam pedras, é que uma tal divergencia de
opiniões sobre o proprio nó vital portuguez depõe muito pouco em
favor de uma conclusão affirmativa.
O leitor sabe como, ancorada em Lisboa a patria pelos seus
fundadores, principiámos a saír o Tejo, a rodear a Africa e viemos a
viver da India, e do Brazil depois. Sabe que meios se empregaram,
e tambem que differenças de condições e idéas ha hoje: o
commercio é uma concorrencia, não um monopolio; o trabalho é
livre, não forçado, etc.[47] Se portanto inquirirmos a historia,
acharemos na tradição fundamento para o primeiro parecer; mas se
estudarmos as idéas e condições actuaes, parece-nos claro que
essa tradição se scindiu, e que é pelo menos problematico o exito
da empreza de a restaurar.
Em que ficamos, pois? Sim ou não? Quem sabe? O vento
assobia, a agulha gira, do norte para o sul, do sul para o norte ... Se
não ha opiniões firmes, como ha de o critico descobril-as? Quem
sabe? Talvez? O ministro fulano disse, o conselheiro sicrano opinou
... E emquanto, rodando, girando, a agulha obedece aos
movimentos mais desencontrados, o critico observa que a nação,
nas suas granjas e nos seus bancos, ceifando cearas e juros,
provincial ou cosmopolita, vae andando. Vamos indo; vamos
vivendo. Não é a unica observação positiva que se póde fazer?
O egoismo deita para depois de si o diluvio; o espirito pratico olha
apenas para o pão-nosso de cada dia. A verdade é que Palmella
enganava-se quando suppunha o Brazil perdido. O Brazil dá-nos
muito dinheiro, sem o trabalho de o governarmos. Mas o que
poupamos por esse lado perde-mol-o por outro. Outr’ora vinham
quintos para o Thesouro, hoje vêem saques para particulares. Esses
saques breve se convertem em inscripções, é verdade; mas o
processo é mau, porque, assim, o Thesouro tem dividas em vez de
rendas; e se por fim, quando o ponto final vier, o resultado tivér sido
o mesmo, o ponto trará comsigo a mais grave das crises.
Perdemos ainda por outro modo. Outr’ora o portuguez ia, voltava,
sem se desnacionalisar; hoje não renega a patria, mas casa-se com
brazileiras, desenraiza-se da sua aldeia e vem para o Porto ou para
Lisboa formar uma classe exotica, opulenta, mas com um papel
desorganisador da homogeneidade e do funccionar normal da
economia da sociedade. Cosmopolitas, esses caçadores de juros,
nada vêem fóra dos papeis: nem o trabalho, nem a industria, nem o
estudo.
Que remedio? Um unico, evidente, immediato: exploral-os. É o
que faz a politica pratica, sacando-lhes o dinheiro em emprestimos
com que compra por melhoramentos a adhesão dos campos;
sacando-lhes tambem subsidios para directamente comprar os
eleitores soberanos das cidades. Que remedio?
O diluvio dista ainda; e no armazem dos expedientes ainda os ha
com fartura. Com o dinheiro do Brazil, directa ou indirectamente se
resolvem as questões internas; com a tradição brigantina da alliança
ingleza consegue-se manter uma independencia de acrobata no
trapezio. As colonias, dadas, pedaço por pedaço, desde 1640,
servem de maroma. Havia um resto de India que nos servia para
nada, aos inglezes para muito: enfeodou-se, e muito bem. Porque
se hesita em dar Moçambique, o Zaire? Porque a agulha com um
sopro de vento apontou ao norte: as colonias são a salvação do
paiz!
Mantém-nos, comtudo, de pé só esta protecção da Inglaterra?
Não, de certo. Defende-nos a desordem da Hespanha, por tantos
lados similhante á nossa; defende-nos o haver lá aquillo mesmo que
faz o nosso mal organico: a falta de alma ou pensamento consciente
na direcção do Estado. Defende-nos tambem, vagamente, a historia,
com os seus sete seculos tão fustigados pela rhetorica, com a lingua
differenciada, com uma dynastia, com um Camões, até com o
estalar dos foguetes e phrases nos Primeiro-de-Dezembro. Tudo
isso tem o seu valor, embora muitas vezes o perca pela mania de
desproporcionar tudo, grave symptoma do nosso juizo avesso.
Outros motivos mais pesados nos defendem tambem, no sentido
de que poderiam trazer sérios embaraços digestivos á Hespanha, se
ella irreflectidamente decidisse engulir-nos, e o fizesse. Primeiro, é
difficil assimilar uma população de quatro milhões a quem não conta
mais do quadruplo; depois, é difficil, com essa relação numerica,
realisar uma combinação dualista, como a Suecia-Noruega, ou a
que foi Inglaterra-Escocia. Para nos fundirmos somos demasiados,
para o dualismo poucos. N’um caso poderiamos reagir o bastante
para impedir a consolidação da unidade, no outro não contariamos o
sufficiente para ter em respeito o collega.
Além d’isso, está Lisboa, excentrica, á maneira de Nova-York.
Madrid é como um Washington: onde ficaria a capital? D. Sinibaldo
e o iberismo da Regeneração, pensando bem n’este caso,
propunham Santarem. Mas quanto vae d’ahi aos Pyreneus? E
ficariam em Portugal a capital politica e a capital commercial?
Lisboa, que a geographia destinou para magestoso porto da
Peninsula, tornou-se pelos acasos da historia o maior embaraço á
unificação dos Estados peninsulares. Sobre o seu porto ancorou
Portugal, como uma cabeça de gigante n’um corpo de pigmeu, e
d’ahi lançou braços pelo mundo transatlantico. Vieram inimigos
posteriores com armas aceradas cortar os tentaculos d’esse
monstruoso polypo do seculo xvi, mas ficou a cabeça ainda e o
pigmeu. Por outro lado, tambem a Hespanha bracejou para o mar:
Vigo do norte, Cadix do sul, duas portas subalternas, ganharam vida
e importancia. A unificação politica da Peninsula traria comsigo
revoluções graves á Hespanha: Cadix, Vigo, decairiam, reduzidos
ao seu trafego natural; Lisboa tornar-se-hia a Nova-York do
occidente da Europa.—Mas uma Nova-York portugueza? Sim. Ou
seria mistér repetir as scenas de oppressão violenta para a fazer
castelhana.
Taes embaraços, resolvem-nos os phantasistas com a phantasia
federal. Dir-me-heis que federação ha entre a cabeça que dirige e a
mão que obedece, entre o estomago que digere e o musculo que se
alimenta? Em vez de federação, chimera nascida do erro de suppor
aggregados as nações, dizei coordenação organica, para exprimir o
funccionar d’esses corpos collectivos. O afamado principio
federativo já defendido em 54, restaurado agora pelo néo-
jacobinismo, é um crasso erro de observação sociologica e uma
aberração do estudo politico, historico.[48] É uma fórma primitiva das
republicas; e do mesmo modo a fórma embryonaria das
aggregações animaes inferiores. Um coral é uma federação, uma
colmeia é uma sociedade. Á maneira que o typo se define e cresce
a eminencia das suas funcções, coordenam-se os orgãos. O
exemplo dos Estados-Unidos tem feito um grande mal aos que da
Europa não vêem que a aggregacão colossal de gentes
desvairadas, em territorios illimitados, exprime um typo rudimentar
de sociedade, repetindo em nossos dias e com os meios materiaes
de uma consumada civilisação, os exemplos primordiaes da historia.
D’aqui por um ou dois seculos se verá em que pára a federação
americana. Da Suissa, quem a estudar, vê como, á maneira que
hoje os caminhos-de-ferro, perfurando as suas montanhas, a
afastam da vida primitiva agricola em que se mantivera, como se
tém mantido tantos animaes ante-diluvianos: vê, dizemos, que vae
pouco a pouco rasgando a sua constituição federal, obedecendo á
força das cousas.
Que a fórma definitiva de coordenação das funcções, fórma
vindoura, mas bem distante ainda! tenha no Estado democratico um
caracter federativo, de orgãos equiparentes, dirigidos pelo forte
cerebro de um Estado, pensamol-o: mas esse criterio pouco importa
agora, se ás esperanças sentimentaes ou ás chimeras doutrinarias,
se trata com effeito de substituir na politica o espirito positivo. A
observação mostra-nos que tudo concorre para apressar uma
marcha cada vez mais accentuada no sentido da centralisação e
das dictaduras pessoaes ou collectivas.
Em Hespanha, o antigo espirito jacobino, encorporando-se nas
tradições localistas, e inspirando-se na doutrina de Proudhon, deu
de si a deploravel historia cantonalista. Viu-se agitarem-se alliadas
as idéas mais incongruentes: era a ultima revolta fuerista, era um
novo 1812 individualista, eram communas socialistas. O passado, o
presente, o futuro, n’um turbilhão, corriam, prégando loucuras,
semeando anarchias. Na Serra-Morena havia já alfandegas como
na Edade-média; em Alcoy incendios como os de Paris; por toda a
parte declamações como as de Cadix, levantando em altares a
soberania? a divindade, do Individuo! Um equivoco de observação,
um erro de doutrina, e o facto da unificação ainda não consummada
das raças peninsulares deram isto de si. Já em 90, em França, os
girondinos não poderam fazer outro tanto: e, se em França ha
federalismo, é socialista, communalista; e não historico,
geographico, ethnico. O atrazo relativo da fusão das raças
peninsulares, esse facto em que os néo-jacobinos, com o seu chefe
Pi y Margall, viam um argumento em favor proprio, (V. Las
nacionalidades) era, e é, o máximo argumento contra a
opportunidade da revolução, cujos laivos socialistas se
desmandavam em preoccupações tradicionaes. Como se o ideal
consistisse em restaurar a Edade-media com os seus cantões e
povos differenciados, isolados pela força das cousas, e pelo
isolamento, hostís!
Em Hespanha o partido caíu com a deploravel ruina da empreza.
Entre nós, porém, não deixou de haver quem viesse offerecer-nos
esse prato requentado da cosinha revolucionaria. Não se sabe,
comtudo, ás vezes bem se o nosso joven federalismo é iberico, se o
não é; ainda que d’elle saiu a singular idéa de fazer de nós os
authores da hegemonia peninsular. Onde leva a falta de proporção
no avaliar as cousas! Não parece um cumulo de ironia, a invenção
de um espirito humorista, o dizer a uma nação que vive perguntando
se póde existir, dizer-lhe que d’ella depende a existencia alheia? Na
serie de symptomas singulares do nosso estado mental, deve ficar
como documento esta idéa da novissima geração.
Ninguem, porém, tema que a precedente, e é ella quem nos
governa ainda, se deixe seduzir por tão extravagantes politicas. Ella
é pratica, e como tal, não tem mais ambição do que a de manter o
que existe, acompanhando passivamente, passo a passo, o
desenvolver espontaneo dos elementos da vida nacional. O seu
liberalismo provém da sua passividade calculada. Vamos andando.
A Inglaterra, confiam elles que nos ha de proteger: e quando não
houver Africas para lhe pagar? Entretanto, o minhoto vae, o
brazileiro vem, e os emprestimos tomam-se; entretanto as estradas
fazem-se e o proprietario enriquece. E cada vez mais esta pequena
Turquia do occidente, com a sua Lisboa que é outra Constantinopla,
ganhando a força de uma existencia rural, provinciana, e de uma
vida bancaria cosmopolita, perde o caracter organico de nação.
Entre-se no Tejo, entre-se até no Douro, e ver-se-hão as bandeiras
de todas as còres, menos a portugueza; formigam, fumando, os
vapores inglezes. Lisboa é uma estalagem, nós os recoveiros. Não!
que desde que ha caminhos-de-ferro nem o lucro das recovagens
embolsamos; somos o moço da arriaria, porque o nosso capital
prefere aos caminhos-de-ferro, se não são do governo, as
inscripções de cá ... e de Hespanha! Proprietarios ou juristas os
burguezes e os lavradores, caixeiros e artífices de industriaes
forasteiros os proletarios, a nossa situação é de facto como a do
turco. Ahi nos conduziram as qualidades de um genio por tantos
lados affín, os resultados de uma condição a tantos respeitos
similhante. Lisboa é para nós um elemento de resistencia passiva:
Constantinopla é-o para elles. Não se está vendo quanto custa a
resolver esse problema? O nosso é proximamente egual. Tambem á
Europa convirá mais ter no Tejo uma estação franca, do que a
cabeça de um imperio concorrente. Se assim é, com effeito, temos
de optar entre duas hypotheses, nenhuma d’ellas, por certo,
inteiramente satisfactoria: ou abdicar da autonomia em favor de um
futuro distante de grandeza peninsular; ou conformarmo-nos a ir
vivendo, regeneradamente, á espera do que está para vir. É uma
crise? Decerto. Um cataclysmo? Talvez sim, talvez não: depende
das circumstancias. Será, como consequencia natural dos factos
actuaes conhecidos, um futuro honroso, nobre, meritorio? Será
outra vez a repetição de D. Manuel, ou do Brazil de D. João v? Não
se vê como possa ser.
O que eu d’aqui estou vendo, ao pôr as ultimas palavras n’esta
obra triste, é o leitor irritado amarfanhar o livro nas mãos, pisal-o
com os pés, vingando-se do atrevimento de quem lhe disse cousas
que tanto o offendem. Nunca os jornaes tal escreveram, nunca o
parlamento ouviu taes heresias: nem os velhos, nem os moços
jámais as proferiram! Tambem os medicos, por via de regra,
escondem ás familias a gravidade das doenças: umas vezes não as
percebem, outras convem lhes mentir, para não assustar! Assim
estão as classes que nos governam; e até hoje, força é dizer que o
povo não descobriu ainda meio de se libertar d’ellas.
Nem descobriu o meio, nem demonstrou a vontade. Dorme e
sonha? Ser-lhe-ha dado acordar ainda a tempo?

NOTAS DE RODAPÉ:

[42] V. O Brazil e as colon. port.


[43] V. Hist. de Port.
[44] V. Elem. de Anthropol.
[45] Foi o que succedeu com a revolução do Brazil em 1889:
deitou abaixo o castello-de-cartas portuguez. (3.ª ed.)
[46] V. Hist. de Portugal.
[47] V. O Brazil e as col. n. port.
[48] V. Instituições primitivas, pp. 290 e segg.
APPENDICES
A
CHRONOLOGIA
1826—Março—6. Nomeação da Regencia do reino por D. João
vi: a infanta D. Izabel Maria presidente.—10. Morte de D. João vi.—
20. Reconhecimento de D. Pedro iv, rei, pela Regencia.
Abril—26. D. Pedro iv, do Rio, confirma os poderes da Regencia.
—27. Amnistia os crimes politicos.—29. Outorga a Carta
Constitucional.—30. Nomeia os pares do reino, segundo a Carta.
Maio—2. D. Pedro iv abdica a corôa em D. Maria ii sob condição
de jurar a constituição e casar com D. Miguel.
Julho—2. Chegada de Stuart a Lisboa na corveta Lealdade com
a Carta.—12. Publicação da Carta em Lisboa, pela Regencia.—31.
Juramento da Carta. = 22-6. Pronunciamentos militares absolutistas
no Minho e Traz-os-Montes; suffocados.
Agosto—1. Izabel-Maria, regente em nome de D. Maria ii.—3.
Composição do ministerio constitucional. = 21. Tentativa de
pronunciamento absolutista do corpo de policia em Lisboa.
Outubro—4. Juramento da Carta por D. Miguel em Vienna de
Austria.—5. Pronunciamento do marquez de Chaves em Villa-Real;
pron. militares em Vizeu, Villapouca, e no Algarve.—8. Eleições das
camaras.—23-5. Invasão dos absolutistas refugiados em Hespanha:
Silveira por Bragança, Telles-Jordão por Almeida, Magessi pelo
Alemtejo. Guerra civil. Sublevação de toda a provincia de Traz-os-
Montes.—29. Celebração dos espousaes de D. Miguel e de D. Maria
II em Vienna.—30. Abertura das côrtes geraes em Lisboa.
Dezembro—15. Acção de Cavez, indecisa.—16. Recomposição
do ministerio no sentido reaccionario; entrada do bispo de Vizeu.—
23. Encerramento das côrtes. = 24. Chegada da divisão ingleza de
Clinton a Lisboa, partindo para o theatro da guerra.
1827—Janeiro—2. Abertura das camaras.—9. Derrota dos
absolutistas em Aguiar da Beira.—19. Convenção anglo-portugueza

You might also like