Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Preface
What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support
Downloading the example code Errata Piracy Questions
C++17 Features
C++17 background What's new in C++17?
What features are deprecated or removed in C++17?
Key features in C++17
Easier nested namespace syntax New rules for type auto-detection from braced initializer list Simplified static_assert The std::invoke( ) method Structured binding If and Switch local scoped variables Template type auto-deduction for class templates Inline variables
Summary
Standard Template Library
The Standard Template Library architecture
Algorithms Iterators Containers Functors
Sequence containers
Array
Code walkthrough Commonly used APIs in an array
Vector
Code walkthrough Commonly used vector APIs Code walkthrough Pitfalls of a vector
List
Commonly used APIs in a list
Forward list
Code walkthrough Commonly used APIs in a forward_list container
Deque
Commonly used APIs in a deque
Associative containers
Set
Code walkthrough Commonly used APIs in a set
Map
Code walkthrough Commonly used APIs in a map
Multiset Multimap Unordered sets Unordered maps Unordered multisets Unordered multimaps
Container adapters
Stack
Commonly used APIs in a stack
Queue
Commonly used APIs in a queue
Priority queue
Commonly used APIs in a priority queue
Summary
Template Programming
Generic programming
Function templates
Code walkthrough
Overloading function templates
Code walkthrough
Class template
Code walkthrough
Explicit class specializations
Code walkthrough
Partial template specialization
Summary
Smart Pointers
Memory management Issues with raw pointers Smart pointers
auto_ptr
Code walkthrough - Part 1 Code walkthrough - Part 2
unique_ptr
Code walkthrough
shared_ptr
Code walkthrough
weak_ptr
Circular dependency
Summary
Developing GUI Applications in C++
Qt
Installing Qt 5.7.0 in Ubuntu 16.04
Qt Core
Writing our first Qt console application
Qt Widgets
Writing our first Qt GUI application
Layouts
Writing a GUI application with a horizontal layout Writing a GUI application with a vertical layout Writing a GUI application with a box layout Writing a GUI application with a grid layout
Signals and slots Using stacked layout in Qt applications
Writing a simple math application combining multiple layouts
Summary
Multithreaded Programming and Inter-Process Communication
Introduction to POSIX pthreads Creating threads with the pthreads library
How to compile and run
Does C++ support threads natively? How to write a multithreaded application using the native C++ thread feature
How to compile and run
Using std::thread in an object-oriented fashion
How to compile and run
What did you learn?
Synchronizing threads
What would happen if threads weren't synchronized? How to compile and run Let's use mutex How to compile and run What is a deadlock? How to compile and run
What did you learn?
Shared mutex Conditional variable How to compile and run
What did you learn?
Semaphore
Concurrency
How to compile and run Asynchronous message passing using the concurrency support library
How to compile and run
Concurrency tasks
How to compile and run
Using tasks with a thread support library
How to compile and run
Binding the thread procedure and its input to packaged_task
How to compile and run
Exception handling with the concurrency library
How to compile and run What did you learn?
Summary
Test-Driven Development
TDD Common myths and questions around TDD
Does it take more efforts for a developer to write a unit test? Is code coverage metrics good or bad? Does TDD work for complex legacy projects? Is TDD even applicable for embedded or products that involve hardware?
Unit testing frameworks for C++ Google test framework
Installing Google test framework on Ubuntu How to build google test and mock together as one single static library without installing? Writing our first test case using the Google test framework Using Google test framework in Visual Studio IDE
TDD in action
Testing a piece of legacy code that has dependency
Summary
Behavior-Driven Development
Behavior-driven development TDD versus BDD C++ BDD frameworks The Gherkin language Installing cucumber-cpp in Ubuntu
Installing the cucumber-cpp framework prerequisite software Building and executing the test cases
Feature file Spoken languages supported by Gherkin The recommended cucumber-cpp project folder structure Writing our first Cucumber test case
Integrating our project in cucumber-cpp CMakeLists.txt Executing our test case
Dry running your cucumber test cases BDD - a test-first development approach
Let's build and run our BDD test case It's testing time!
Summary
Debugging Techniques
Effective debugging Debugging strategies Debugging tools
Debugging your application using GDB
GDB commands quick reference
Debugging memory leaks with Valgrind
The Memcheck tool
Detecting memory access outside the boundary of an array Detecting memory access to already released memory locations Detecting uninitialized memory access Detecting memory leaks Fixing the memory leaks Mismatched use of new and free or malloc and delete
Summary
Code Smells and Clean Code Practices
Code refactoring Code smell What is agile? SOLID design principle
Single responsibility principle Open closed principle Liskov substitution principle Interface segregation Dependency inversion
Code smell
Comment smell Long method Long parameter list Duplicate code Conditional complexity Large class Dead code Primitive obsession Data class Feature envy
Summary
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion