forked from JLospinoso/ccc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
executable file
·613 lines (513 loc) · 36.3 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="The Companion Website for C++ Crash Course">
<meta name="author" content="Josh Lospinoso">
<link rel="icon" href="https://v4-alpha.getbootstrap.com/favicon.ico">
<title>C++ Crash Course</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<link href="cover.css" rel="stylesheet">
</head>
<body>
<div class="container">
<hr class="my-2">
<div class="jumbotron p-3 p-md-5 rounded">
<div class="container">
<a href="https://nostarch.com/cppcrashcourse">
<a href="cppcc.svg"><img src="cppcc.svg" class="img-fluid" alt="C++ Crash Course"></a>
<hr class="my-4">
<h2 class="display-5">Modern C++, Compiled and Optimized</h2>
<p class="lead">C++ Crash Course is a fast-paced, thorough introduction to Modern C++ for experienced
programmers.</p>
</a>
</div>
</div>
<div class="row text-center text-lg-left">
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/1.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/2.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/3.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/4.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/5.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/6.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/7.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/8.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/9.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/10.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/11.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/12.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/13.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/14.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/15.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/16.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/17.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/18.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/19.jpg" alt="">
</a>
</div>
<div class="col-lg-3 col-md-4 col-6">
<a href="#" class="d-block mb-4 h-100">
<img class="img-fluid img-thumbnail" src="media/20.jpg" alt="">
</a>
</div>
</div>
<div class="row mb-2">
<div class="col-md-6">
<div class="card flex-md-row mb-4 box-shadow h-md-250">
<div class="card-body d-flex flex-column align-items-start">
<strong class="d-inline-block mb-2 text-primary">C++ Crash Course Is Available Now!</strong>
<h3 class="mb-0">Ask your local bookstore for a copy.</h3>
<p>Or if you're not into the in-person thing, order online! You can use coupon code <b>JOSHCCC</b> for 30% off at <a href="https://nostarch.com/cppcrashcourse">No Starch Press</a>.</p>
<ul>
<li><a href="https://nostarch.com/cppcrashcourse">No Starch Press</a></li>
<li><a href="https://www.amazon.com/C-Crash-Course-Josh-Lospinoso/dp/1593278888">Amazon</a></li>
<li>
<a href="https://www.barnesandnoble.com/w/c-crash-course-josh-lospinoso/1132189073?ean=9781593278885#/">Barnes
& Noble</a></li>
<li>
<a href="https://www.penguinrandomhouse.com/books/568138/c-crash-course-by-joshua-alfred-lospinoso/9781593278885/">Penguin
Random House</a></li>
</ul>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card flex-md-row mb-4 box-shadow h-md-250">
<div class="card-body d-flex flex-column align-items-start">
<strong class="d-inline-block mb-2 text-secondary">Say Hi, or Leave a Review</strong>
<h3 class="mb-0">What do you think?</h3>
<ol class="list-unstyled">
<li><a href="https://www.amazon.com/review/create-review/?ie=UTF8&channel=glance-detail&asin=1593278888">Amazon</a></li>
<li><a href="https://www.goodreads.com/en/book/show/41441922">Good Reads</a></li>
<li><a href="https://bookshout.com/ebooks/c-crash-course">Book Shout</a></li>
<li><a href="https://github.com/JLospinoso/ccc">GitHub - JLospinoso/ccc</a></li>
<li><a href="https://twitter.com/jalospinoso">Twitter - @jalospinoso</a></li>
<li><a href="mailto:ccc@lospi.net">Email the Author - ccc@lospi.net</a></li>
</ol>
</div>
</div>
</div>
</div>
</div>
<main role="main" class="container">
<div class="row">
<div class="col-md-8">
<h3 id="about" class="pb-3 mb-4 font-italic border-bottom">About C++ Crash Course</h3>
<h5>A fast-paced, thorough introduction to modern C++ written for experienced programmers. After reading C++
Crash Course, you’ll be proficient in the core language concepts, the C++ Standard Library, and the
Boost Libraries.</h5>
<p>C++ is one of the most widely used languages for real-world software. In the hands of a knowledgeable
programmer, C++ can produce small, efficient, and readable code that any programmer would be proud
of.</p>
<p>Designed for intermediate to advanced programmers, C++ Crash Course cuts through the weeds to get you
straight to the core of C++17, the most modern revision of the ISO standard. Part 1 covers the core of
the C++ language, where you’ll learn about everything from types and functions, to the object life cycle
and expressions. Part 2 introduces you to the C++ Standard Library and Boost Libraries, where you’ll
learn about all of the high-quality, fully-featured facilities available to you. You’ll cover special
utility classes, data structures, and algorithms, and learn how to manipulate file systems and build
high-performance programs that communicate over networks. </p>
<p>You’ll learn all the major features of modern C++, including:</p>
<ul>
<li>Fundamental types, reference types, and user-defined types</li>
<li>The object lifecycle including storage duration, memory management, exceptions, call stacks, and the
RAII paradigm
</li>
<li>Compile-time polymorphism with templates and run-time polymorphism with virtual classes</li>
<li>Advanced expressions, statements, and functions</li>
<li>Smart pointers, data structures, dates and times, numerics, and probability/statistics facilities
</li>
<li>Containers, iterators, strings, and algorithms</li>
<li>Streams and files, concurrency, networking, and application development</li>
</ul>
</div><!-- /.blog-main -->
<aside class="col-md-4 blog-sidebar">
<div class="p-3 mb-3 rounded">
<h4 class="font-bold">Samples for Download:</h4>
<h4 class="font-italic"><a href="https://nostarch.com/download/samples/C++CrashCourse_Sample_Ch3.pdf" target="_blank"><u>Chapter 3</u></a></h4>
<h4 class="font-italic"><a href="https://nostarch.com/download/samples/C++CrashCourse_Sample_ToC.pdf" target="_blank"><u>Table of Contents</u></a></h4>
<h4 class="font-italic"><a href="https://nostarch.com/download/samples/C++CrashCourse_Sample_Index.pdf" target="_blank"><u>Index</u></a></h4>
<p class="mb-0"></p>
</div>
<div class="p-3">
<h4 class="font-italic">Links</h4>
<ol class="list-unstyled mb-0">
<li><a href="#about">About C++ Crash Course</a></li>
<li><a href="#code">Companion Code</a></li>
<li><a href="#errata">Errata</a></li>
<li><a href="#links">Up-to-date Links</a></li>
<li>
<a href="https://lospi.net/c/c++/programming/developing/software/2019/07/28/cpp-crash-course.html">Blog Post: "On
Writing a C++ Book"</a></li>
</ol>
</div>
</aside><!-- /.blog-sidebar -->
<div class="col-md-8">
<h3 id="code" class="pb-3 mb-4 font-italic border-bottom">Downloading the Code</h3>
<h5>C++ Crash Course contains well over 500 code samples & nearly 100 exercises.</h5>
<a href="https://github.com/JLospinoso/ccc"><p>You can download all of them from Github.</p></a>
<p>You can clone the repository:</p>
<pre><code>git clone git@github.com:JLospinoso/ccc</code></pre>
<p>Or simply download the files using your browser:</p>
<p><a href="https://github.com/JLospinoso/ccc/archive/master.zip">
<button type="button" class="btn btn-primary">Download the .ZIP</button>
</a></p>
<p>So long as you have CMake, Boost, and git installed, you can then build all the examples with an
out-of-source build:</p>
<pre><code>cd ccc
git submodule init
git submodule update
mkdir build
cd build
cmake ..</code></pre>
</div>
<div class="col-md-8">
<h3 class="pb-3 mb-4 font-italic border-bottom" id="errata">Errata</h3>
<h5>To report an erratum, please submit an issue on Github <a href="https://github.com/JLospinoso/ccc/issues">https://github.com/JLospinoso/ccc/issues</a>.</h5>
<ul>
<li><a href="https://github.com/JLospinoso/ccc/issues/44">p. 97</a> The C++ Standard says that thread_local variable lifetimes begin <i>at latest</i> upon first use by the thread. The text
implies that the thread_local life time is similar to a static lifetime. You can modify Listing 4-6 by inserting the line "const auto t2_ptr = &t2;" at the very beginning of main, or at
namespace scope.</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/28">p. 353</a> fclose returns an int. If it's successful, fclose returns 0, otherwise EOF. (See https://en.cppreference.com/w/c/io/fclose)</li>
</ul>
</div>
<div class="col-md-8">
<h3 class="pb-3 mb-4 font-italic border-bottom" id="typos">Typos</h3>
<ul>
<li><a href="https://github.com/JLospinoso/ccc/issues/53">p. xl</a> In Listing 4, "mannie_service" should read "make_sentient"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/33">p. xliv</a> "and the function in the Jabberwock namespace" should read "and the function in the Func namespace"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/54">p. liv</a> "the destructor cleans up file.file_pointer for you (2)" should read "...(3)"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/59">p. 18</a> "hexadecimal and octal output" shoud read "hexadecimal, decimal, and octal output"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/62">p. 21</a> "These symbols, // or /**/, tell the compiler" should read "The // symbol tells the compiler"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/5">p. 62</a> "Whether array_5 is initialized or not..." Should read "Whether array_4 is initialized or not..."</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/30">p. 76</a> In Listing 3-7, "*(lower + 4)" and "*(upper_ptr + 4)" should read "*(lower + 3)" and "*(upper_ptr + 3)", respectively.</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/6">p. 78</a> "Each Element also contains a prefix array (5) and an operating_number
pointer (6)." Should read "... and an operating_number short."</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/19">p. 80</a> "Next, you initialize another int called new_value to 200 and <b>assign it to original</b>(3)."</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/32">p. 105</a> The Note should refer to Item 14, not Item 16 of Effective Modern C++ by Scott Meyers.</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/52">p. 120</a> In listing 4-30, "strcpy_s(buffer, max_size, other.buffer);" should read "std::strncpy(buffer, other.buffer, max_size);"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/18">p. 128</a> The copy constructor in Listing 4-38 should use braced initializers for its member initializer, as in Listing 4-35.</li>
<li>
<p>
<a href="https://github.com/JLospinoso/ccc/issues/7">p. 130</a> The Move Assignment checkmark is in the wrong place:
<a href="cppcc.svg"><img src="erratum-01.svg" alt="typo p.130" style='stroke-width: 0; background-color: white;'></a>
</p>
</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/23">p. 147</a> In Listing 5-14, "Bank(Logger* logger) : logger{ logger } ()" should read "Bank(Logger* logger) : logger{ logger } {}"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/24">p. 175</a> "element-type(param-name&)[array-length]" should read "element-type(¶m-name)[array-length]"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/9">p. 187</a> Listing 7-2 should throw a std::overflow_error at (4).</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/8">p. 188</a> "This argument is used to member initialize the private field value." Should read "This argument is used to member initialize the public field value."</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/25">p. 195</a> Table 7-6: The description for "a ^ b" should read "Bitwise XOR"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/10">p. 203</a> Listing 7-14 Caption, "A refactor of Listing 7-13 using a static_cast..." should read "A refactor of Listing 7-13 using a reinterpret_cast...".</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/20">p. 239</a> To assign a label,
prepend a statement with the desired name of the label followed by a
<b>colon.</b></li>
<li><a href="https://github.com/JLospinoso/ccc/issues/46">p. 241</a> "Implement a PrimeNumberRange class that can be used in a range exception to iterate over" should read "Implement a PrimeNumberRange class that can be used in a range expression to iterate over"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/11">p. 251</a> "..., you call va_list with the va_list structure" should read "..., you call va_end with the va_list structure"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/45">p. 277</a> Exercise 9-3, "template <typename Fn, typename In, typename Out>" should read "template <typename Fn, typename In>"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/12">p. 284</a> Figure 10-1, the direction of the arrows, SpeedUpdate, CarDetected, BrakeCommand, are reversed.</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/26">p. 289</a> "That’s all you have to do; assert will throw an exception if the initial speed is zero." should read "isn't zero."</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/27">p. 291</a> "Listing 10-9: A unit test encoding the requirement that the initial speed be zero" should read "that the initial sensitivity is five"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/49">p. 302</a> "You can add this into the AutoBus constructor, as demonstrated in Listing 10-27" should read "You can add this into the AutoBrake constructor, as demonstrated in Listing 10-27"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/29">p. 304</a> "single-header" should read "single_header" (to correspond with the correct subdirectory within Catch).</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/34">p. 319</a> Listing 10-41: Caption should read "Using Boost Test" rather than "Using Google Test" </li>
<li><a href="https://github.com/JLospinoso/ccc/issues/13">p. 327</a> Listing 10-50: "publish(A<BrakeCommand>)" should read "publish(A<BrakeCommand>())" </li>
<li><a href="https://github.com/JLospinoso/ccc/issues/14">p. 328</a> Table 10-2: "A<type>)()" should read "A<type>()"; "An<type>)()" should read "An<type>()"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/51">p. 336</a> "IServiceBusMock" should read "IServiceBus mock"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/40">p. 351</a> "ownership to son_of_aragorn. Because son_of_aragorn can" should read "ownership to son_of_arathorn. Because son_of_arathorn can"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/28">p. 368</a> Exercise 11-1: Should read "Reimplement Listing 11-13 to use a ..."</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/36">p. 382</a> Table 12-6, "Convenience function for constructing a tuple" should read "Convenience function for constructing a variant"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/37">p. 385</a> Table 12-8, "Returns the month portion of the date" should read "Creates a period from d to d+n_days"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/16">p. 404</a> Table 12-16, table header "Distribution" should read "Operation".</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/16">p. 404</a> The subtitle "A Partial List of Random Number Distributions" should read "A Partial List of Operations Available in <ratio>".</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/38">p. 431</a> "Constructs a priority_queue of Ts using ctr as its internal container and srt as its comparator object." should read "...and cmp as its comparator object."</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/39">p. 437</a> "when you give the key 8 (3)" should read "when you give the key 100 (3)"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/31">p. 451</a> "Throws std::out_of_bounds" should read "Throws std::out_of_range"</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/17">p. 456</a> "You can remove subtrees from a ptree using the get_child method, ..." should read "You can get subtrees from a ptree using the get_child method, ..."</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/41">p. 584</a> The subsection title "find_first" should read "find_first_of".</li>
<li><a href="https://github.com/JLospinoso/ccc/issues/42">p. 608</a> back_inserter(counts) should read back_inserter(result). See <a href=https://github.com/JLospinoso/ccc/blob/master/chapter_18/sample.cpp#L19>sample.cpp</a> </li>
<li><a href="https://github.com/JLospinoso/ccc/issues/43">p. 616</a> "next you invoke is_sort" should read "next you invoke is_sorted".</li>
</ul>
</div>
<div class="col-md-8">
<h3 class="pb-3 mb-4 font-italic border-bottom" id="links">Up-to-date Links</h3>
<h4 class="font-italic">Introduction</h4>
<p class="card-text text-left">p. xxxv: <a class="card-text"
href="https://github.com/JLospinoso/ccc">Companion
Code</a></p>
<h4 class="font-italic">Foreword: An Overture to C Programmers</h4>
<p class="text-left">p. xxxix: <a
href="https://lospi.net/c/c++/programming/developing/software/2019/04/28/c-constructs-that-dont-work-in-cpp.html">C
Constructs That Don't Work in C++</a></p>
<h4 class="font-italic">Chapter 1: Up and Running</h4>
<p class="text-left">p. 6: <a href="https://wandbox.org">Wandbox</a></p>
<p class="text-left">p. 6: <a href="https://godbolt.org">Compiler Explorer</a></p>
<p class="text-left">p. 6: <a href="https://github.com/root-project/cling">Cling (Note: Not mentioned in the book, but a nice C++ REPL.)</a></p>
<p class="text-left">p. 6: <a
href="https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15">Visual
Studio 2017 Community Edition Download</a></p>
<p class="text-left">p. 10: <a href="https://gcc.gnu.org/">GCC, the GNU Compiler Collection</a>
</p>
<p class="text-left">p. 10: <a href="https://clang.llvm.org/">Clang: a C language family
frontend for LLVM</a></p>
<p class="text-left">p. 11: <a href="https://gcc.gnu.org/mirrors.html">GCC mirror sites</a></p>
<p class="text-left">p. 11: <a href="https://gnupg.org/download/integrity_check.html">GnuPG</a>
</p>
<p class="text-left">p. 12: <a href="https://gcc.gnu.org/install/configure.html">Installing GCC:
Configuration</a></p>
<p class="text-left">p. 12: <a href="https://gcc.gnu.org/install/build.html">Installing GCC:
Building</a></p>
<p class="text-left">p. 12: <a href="https://gcc.gnu.org/install/test.html">Installing GCC:
Testing</a></p>
<p class="text-left">p. 12: <a href="https://gcc.gnu.org/install/">Installing GCC</a></p>
<p class="text-left">p. 12: <a href="https://gcc.gnu.org/ml/gcc-help/">The gcc-help mailing list
archives</a></p>
<p class="text-left">p. 23: <a
href="https://docs.microsoft.com/en-us/cpp/ide/walkthrough-debugging-a-project-cpp?view=vs-2017">Visual
Studio Walkthrough: Debugging a Project (C++)</a></p>
<p class="text-left">p. 25: <a
href="https://developer.apple.com/library/archive/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/Introduction.html">About
LLDB and Xcode</a></p>
<p class="text-left">p. 25: <a href="https://www.gnu.org/software/gdb/">GDB: The GNU Project
Debugger</a></p>
<p class="text-left">p. 25: <a href="https://lldb.llvm.org/">The LLDB Debugger</a></p>
<p class="text-left">p. 28: <a href="https://sourceware.org/gdb/current/onlinedocs/gdb/">Debugging
with GDB</a></p>
<p class="text-left">p. 28: <a href="https://stackoverflow.com/">Stack Overflow</a></p>
<p class="text-left">p. 28: <a href="https://www.reddit.com/r/cpp_questions/">CPP Subreddit</a>
</p>
<p class="text-left">p. 28: <a href="https://cpplang.now.sh/">CPP Slack</a></p>
<p class="text-left">p. 29: <a href="https://cppcast.com/">CPPCast</a></p>
<p class="text-left">p. 29: <a href="https://en.cppreference.com/w/">CPPReference</a></p>
<p class="text-left">p. 29: <a href="http://www.cplusplus.com/">CPlusPlus</a></p>
<p class="text-left">p. 29: <a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf">The "Draft" ISO
C++ Standard (2017)</a></p>
<h4 class="font-italic">Chapter 2: Types</h4>
<p class="text-left">p. 35: <a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1605.pdf">The
IEEE Standard for Floating-Point Arithmetic, IEEE 754.</a></p>
<p class="text-left">p. 65: <a
href="http://www.drdobbs.com/c-made-easier-plain%20-old-data/184401508/">C++ Made
Easier: Plain Old Data</a></p>
<h4 class="font-italic">Chapter 3: Reference Types</h4>
<p class="text-left">p. 86: <a
href="https://docs.microsoft.com/en-us/security-updates/securitybulletins/2001/ms01-033">Microsoft
Security Bulletin MS01-033 - Critical (Code Red)</a></p>
<p class="text-left">p. 87: <a href="https://github.com/isocpp/CppCoreGuidelines/">C++ Core
Guidelines</a></p>
<p class="text-left">p. 87: <a href="https://levelofindirection.com/">East End Functions</a></p>
<p class="text-left">p. 87: <a href="https://isocpp.org/wiki/faq/references/">References</a></p>
<h4 class="font-italic">Chapter 6: Compile-time Polymorphism</h4>
<p class="text-left">p. 171: <a href="https://github.com/asutton/origin/">The Origin Library</a>
</p>
<h4 class="font-italic">Chapter 7: Expressions</h4>
<p class="text-left">p. 189: <a
href="https://docs.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapalloc">HeapAlloc</a>
</p>
<p class="text-left">p. 189: <a
href="http://man7.org/linux/man-pages/man3/malloc.3.html">malloc</a></p>
<p class="text-left">p. 207: <a
href="https://en.wikipedia.org/wiki/HSL_and_HSV#Color_conversion_formulae">HSV
Conversion</a></p>
<h4 class="font-italic">Chapter 10: Testing</h4>
<p class="text-left">p. 304-5, 309: <a href="https://github.com/catchorg/Catch2">Catch2</a></p>
<p class="text-left">p. 310, 325, 328: <a
href="https://github.com/google/googletest/blob/master/README.md">Google Test/Google
Mocks Documentation</a></p>
<p class="text-left">p. 317: <a
href="https://www.boost.org/doc/libs/1_70_0/libs/test/doc/html/index.html">Boost
Test</a></p>
<p class="text-left">p. 333: <a href="https://github.com/dascandy/hippomocks/">HippoMocks</a>
</p>
<p class="text-left">p. 337: <a href="https://github.com/eranpeer/FakeIt/">FakeIt</a></p>
<p class="text-left">p. 337: <a href="https://github.com/rollbear/trompeloeil">Trompeloeil</a>
</p>
<p class="text-left">p. 339: <a href="https://en.wikipedia.org/wiki/Editor_war">Editor War</a>
</p>
<p class="text-left">p. 339: <a href="https://martinfowler.com/articles/is-tdd-dead/">Is TDD
Dead?</a></p>
<h4 class="font-italic">Chapter 11: Smart Pointers</h4>
<p class="text-left">p. 349: <a
href="https://www.boost.org/doc/libs/1_70_0/libs/smart_ptr/doc/html/smart_ptr.html">Boost
Smart Pointer</a></p>
<p class="text-left">p. 363: <a
href="https://www.boost.org/doc/libs/1_70_0/doc/html/intrusive.html">Boost Intrusive</a>
</p>
<p class="text-left">p. 387: <a
href="https://www.boost.org/doc/libs/1_70_0/doc/html/date_time.html">Boost DateTime</a>
</p>
<h4 class="font-italic">Chapter 12: Utilities</h4>
<p class="text-left">p. 401-403: <a
href="https://www.boost.org/doc/libs/1_70_0/libs/numeric/conversion/doc/html/index.html">Boost
Numeric Conversion</a></p>
<h4 class="font-italic">Chapter 13: Containers</h4>
<p class="text-left">p. 415: <a href="https://en.cppreference.com/w/">CPPReference</a></p>
<p class="text-left">p. 415: <a href="http://www.cplusplus.com/">CPlusPlus</a></p>
<p class="text-left">p. 433: <a
href="https://www.boost.org/doc/libs/1_70_0/doc/html/container.html">Boost Container</a>
</p>
<h4 class="font-italic">Chapter 15: Strings</h4>
<p class="text-left">p. 500: <a
href="https://www.boost.org/doc/libs/1_70_0/doc/html/boost_lexical_cast.html">Boost
Lexical Cast</a></p>
<p class="text-left">p. 512, 515: <a
href="https://www.boost.org/doc/libs/1_70_0/doc/html/string_algo.html">Boost String
Algorithms</a></p>
<h4 class="font-italic">Chapter 17: Filesystems</h4>
<p class="text-left">p. 551: <a
href="https://www.boost.org/doc/libs/1_70_0/libs/filesystem/doc/index.htm">Boost
Filesystem</a></p>
<p class="text-left">p. 571: <a
href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/dir">The
dir Command</a></p>
<p class="text-left">p. 571: <a href="http://man7.org/linux/man-pages/man1/ls.1.html">The ls
Command</a></p>
<h4 class="font-italic">Chapter 18: Algorithms</h4>
<p class="text-left">p. 637: <a
href="https://www.boost.org/doc/libs/1_70_0/libs/algorithm/doc/html/index.html">Boost
Algorithm</a></p>
<p class="text-left">p. 638: <a
href="https://www.boost.org/doc/libs/1_70_0/libs/range/doc/html/index.html">Boost
Range</a></p>
<p class="text-left">p. 638: <a
href="https://www.cs.cmu.edu/~adamchik/15-121/lectures/Algorithmic%20Complexity/complexity.html">Algorithmic
Complexity</a></p>
<h4 class="font-italic">Chapter 19: Concurrency and Parallelism</h4>
<p class="text-left">p. 643: <a href="https://en.wikipedia.org/wiki/Integer_factorization">Integer
Factorization</a></p>
<p class="text-left">p. 655: <a
href="https://www.boost.org/doc/libs/1_70_0/doc/html/lockfree.html">Boost Lockfree</a>
</p>
<p class="text-left">p. 662: <a
href="http://www.drdobbs.com/cpp/c-and-the-perils-of-double-checked-locki/184405726/">C++
and The Perils of Double-Checked Locking</a></p>
<p class="text-left">p. 662: <a
href="https://herbsutter.com/2010/09/24/effective-concurrency-know-when-to-use-an-active-object-instead-of-a-mutex/">Effective
Concurrency: Know When to Use an Active Object Instead of a Mutex</a></p>
<h4 class="font-italic">Chapter 20: Network Programming with Boost Asio</h4>
<p class="text-left">p. 665: <a
href="https://www.boost.org/doc/libs/1_70_0/doc/html/boost_asio.html">Boost Asio</a></p>
<p class="text-left">p. 667: <a
href="https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml">IANA
Service Name and Transport Protocol Port Number Registry</a></p>
<p class="text-left">p. 677: <a
href="https://www.boost.org/doc/libs/1_70_0/libs/beast/doc/html/index.html">Boost
Beast</a></p>
<p class="text-left">p. 677: <a href="https://www.ietf.org/standards/rfcs/">IETF RFCs</a></p>
<p class="text-left">p. 677: <a
href="https://www.boost.org/doc/libs/1_70_0/libs/beast/doc/html/beast/examples.html">Boost
Beast example projects</a></p>
<p class="text-left">p. 684: <a
href="https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml">IANA
Service Name and Transport Protocol Port Number Registry</a></p>
<p class="text-left">p. 685: <a href="https://nmap.org/ncat/">netcat</a></p>
<p class="text-left">p. 689: <a href="https://nmap.org/">nmap</a></p>
<h4 class="font-italic">Chapter 21: Applications</h4>
<p class="text-left">p. 704: <a
href="https://www.boost.org/doc/libs/1_70_0/doc/html/program_options.html">Boost Program
Options</a></p>
<p class="text-left">p. 713: <a
href="https://www.boost.org/doc/libs/1_70_0/libs/parameter_python/doc/html/index.html">Boost
Python</a></p>
</div>
</div><!-- /.row -->
</main><!-- /.container -->
<footer class="footer-copyright text-center py-3">
<p>Copyright © 2019 <a href="https://lospi.net">Josh Lospinoso</a></p>
</footer>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
crossorigin="anonymous"></script>
<script>
Holder.addTheme('thumb', {
bg: '#55595c',
fg: '#eceeef',
text: 'Thumbnail'
});
</script>
</body>
</html>