Linux und Open Source
Quick search
Navigation
Schulungen
Kursangebot
Unterlagen & Download
Topics
Python Programming: From Absolute Beginner to Advanced Productivity
The C Programming Language
C++: TODO List
C++: Miscellaneous Live-Hacking
C++ 03
C++ 11
Introduction
New Language Features
Smart Pointers
Perfect Forwarding
Functions, Functions
Multithreading
Miscellaneous
std::filesystem
Introduction
Design Patterns With C++
C++ Code
C++ Exercises
Linux
Unit Testing
Linux Kernel Driver Development
Generated Topic Graph
Organisatorisches
Datenschutz
Bisher Gehaltene
About
Über Mich
About This Site
Blog
Posts
C++ 11
¶
Topics
Group Description
Topics
¶
Introduction
New Language Features
Smart Pointers
Perfect Forwarding
Functions, Functions
Multithreading
Miscellaneous
std::filesystem
Introduction
Group Description
¶
cluster_c
The C Programming Language
cluster_c_program_sanity
Program Sanity
cluster_c_functions_and_program_structure
Functions and Program Structure
cluster_c_structures
Structures
cluster_c_memory
Memory
cluster_c_introduction
Introduction
cluster_c_types_operators_expressions
Types, Operators, Expressions
cluster_c_advanced_language_features
Advanced Language Features
cluster_c_program_flow
Program Flow
cluster_c_pointers_and_arrays
Pointers and Arrays
cluster_linux
Linux
cluster_linux_sysprog
Linux Systems Programming
cluster_linux_sysprog_posix_threads
POSIX Threads
cluster_linux_sysprog_basics
Linux Systems Programming: Basics
cluster_linux_sysprog_blocking_io
Blocking I/O: What Is That?
cluster_linux_sysprog_scheduling
Scheduling
cluster_linux_sysprog_fileio
File I/O
cluster_linux_basics
Linux Basics
cluster_linux_basics_intro
Introduction: Concepts and Terminology
cluster_linux_basics_permissions
File System Permissions
cluster_linux_basics_shell
The Shell (Bash - “Bourne Again Shell”)
cluster_linux_toolchain
Toolchain
cluster_cxx03
C++ 03
cluster_cxx03_data_encapsulation
Data Encapsulation
cluster_cxx03_functions_and_methods
Functions and Methods
cluster_cxx11
C++ 11
cluster_cxx11_new_language_features
New Language Features
cluster_cxx11_new_language_features_lambda
Lambda
cluster_cxx11_new_language_features_brace_initialization
Brace Initialization (Uniform Initialization)
cluster_cxx11_new_language_features_move_pf
Move Semantics, Rvalue References
cluster_cxx11_introduction
Introduction
cluster_cxx11_multithreading
Multithreading
cluster_cxx11_functions_functions
Functions, Functions
cluster_cxx11_smart_pointers
Smart Pointers
cluster_cxx11_exercises
Introduction
c_program_sanity_integral_types
Know Your Integers
c_program_sanity_introduction
Sanity and Readabilty
c_program_sanity_integral_types->c_program_sanity_introduction
c_advanced_language_features_alignment
Alignment
c_program_sanity_introduction->c_advanced_language_features_alignment
c_program_sanity_discrete_values
Discrete Values - enum
c_program_sanity_discrete_values->c_program_sanity_integral_types
c_functions_and_program_structure_external_variables
Extern/Global Variables
c_functions_and_program_structure_basics
Basics
c_functions_and_program_structure_external_variables->c_functions_and_program_structure_basics
c_functions_and_program_structure_static_variables
Static Variables
c_functions_and_program_structure_header_files
Header Files
c_functions_and_program_structure_static_variables->c_functions_and_program_structure_header_files
c_functions_and_program_structure_c_preprocessor
C Preprocessor: Basics
c_functions_and_program_structure_c_preprocessor->c_functions_and_program_structure_static_variables
c_functions_and_program_structure_header_files->c_functions_and_program_structure_external_variables
c_functions_and_program_structure_c_preprocessor_advanced
C Preprocessor: More
c_functions_and_program_structure_c_preprocessor_advanced->c_functions_and_program_structure_c_preprocessor
c_program_flow_goto_and_labels
goto and Labels
c_functions_and_program_structure_basics->c_program_flow_goto_and_labels
c_structures_basics
struct: Basics
c_pointers_and_arrays_command_line_arguments
Commandline Arguments
c_structures_basics->c_pointers_and_arrays_command_line_arguments
c_structures_typedef
typedef: Type Alias
c_structures_structures_and_functions
struct: Functions
c_structures_typedef->c_structures_structures_and_functions
c_structures_structures_and_functions->c_structures_basics
c_memory_exercise_linked_list
Singly Linked List
c_memory_malloc
Dynamic Memory
c_memory_exercise_linked_list->c_memory_malloc
c_memory_malloc->c_structures_typedef
c_introduction_exercise_wc
Exercise: wc For The Poor
c_introduction_character_io
Character I/O
c_introduction_exercise_wc->c_introduction_character_io
c_introduction_exercise_string_read_line
Exercise: Read Line Into String from stdin
c_introduction_character_arrays
Character Arrays
c_introduction_exercise_string_read_line->c_introduction_character_arrays
c_introduction_exercise_fahrenheit_cpp
Exercise: Fahrenheit Table Using Macros
c_introduction_cpp_symbolic_constants
Symbolic Constants
c_introduction_exercise_fahrenheit_cpp->c_introduction_cpp_symbolic_constants
c_introduction_variables_and_arithmetic_expressions
Variables and Arithmetic
c_introduction_hello_world
Hello World
c_introduction_variables_and_arithmetic_expressions->c_introduction_hello_world
c_introduction_external_variables_and_scope
Lifetime of Variables
c_introduction_external_variables_and_scope->c_introduction_exercise_string_read_line
c_introduction_exercise_power_declaration
Exercise: Forward Declaration
c_introduction_functions
Functions
c_introduction_exercise_power_declaration->c_introduction_functions
c_introduction_exercise_fahrenheit_float
Exercise: A Better Fahrenheit Table
c_introduction_exercise_fahrenheit_float->c_introduction_variables_and_arithmetic_expressions
c_introduction_introduction
Introduction
c_introduction_installation
Installation
c_introduction_introduction->c_introduction_installation
c_introduction_exercise_histogram
Exercise: Character Histogram
c_introduction_arrays
Arrays
c_introduction_exercise_histogram->c_introduction_arrays
c_introduction_for_loop
for Loops
c_introduction_for_loop->c_introduction_exercise_fahrenheit_float
c_introduction_exercise_fahrenheit_for
Exercise: Fahrenheit Table Using for
c_introduction_cpp_symbolic_constants->c_introduction_exercise_fahrenheit_for
c_introduction_arrays->c_introduction_exercise_wc
c_introduction_character_arrays->c_introduction_exercise_power_declaration
c_introduction_character_io->c_introduction_exercise_fahrenheit_cpp
c_introduction_hello_world->c_introduction_introduction
c_introduction_exercise_fahrenheit_for->c_introduction_for_loop
c_introduction_functions->c_introduction_exercise_histogram
c_types_operators_expressions_constants
Constants
c_types_operators_expressions_datatypes_size
Data Types, Sizes
c_types_operators_expressions_constants->c_types_operators_expressions_datatypes_size
c_types_operators_expressions_increment_decrement_operators
Increment, Decrement
c_types_operators_expressions_type_conversions
Type Conversions
c_types_operators_expressions_increment_decrement_operators->c_types_operators_expressions_type_conversions
c_types_operators_expressions_bit_operators
Bit-Operators
c_types_operators_expressions_exercise_string_reduce
Exercise: Copy and Reduce String
c_types_operators_expressions_bit_operators->c_types_operators_expressions_exercise_string_reduce
c_types_operators_expressions_declarations
Variable Definitions
c_types_operators_expressions_declarations->c_types_operators_expressions_constants
c_types_operators_expressions_variable_names
Variable Names
c_types_operators_expressions_datatypes_size->c_types_operators_expressions_variable_names
c_types_operators_expressions_assignment_operators_and_expressions
Assignment with Calculation
c_types_operators_expressions_assignment_operators_and_expressions->c_types_operators_expressions_bit_operators
c_types_operators_expressions_exercise_string_reduce->c_types_operators_expressions_increment_decrement_operators
c_types_operators_expressions_conditional_expressions
?: - Conditional Expression
c_types_operators_expressions_conditional_expressions->c_types_operators_expressions_assignment_operators_and_expressions
c_types_operators_expressions_arithmetic_operators
Arithmetic Operators
c_types_operators_expressions_arithmetic_operators->c_types_operators_expressions_declarations
c_types_operators_expressions_relational_logical_operators
Relational and Logical Operators
c_types_operators_expressions_type_conversions->c_types_operators_expressions_relational_logical_operators
c_types_operators_expressions_introduction
Type System
c_types_operators_expressions_variable_names->c_types_operators_expressions_introduction
c_types_operators_expressions_introduction->c_introduction_external_variables_and_scope
c_types_operators_expressions_relational_logical_operators->c_types_operators_expressions_arithmetic_operators
c_types_operators_expressions_precedence_and_order_of_evaluation
Precedence, Associativity
c_types_operators_expressions_precedence_and_order_of_evaluation->c_types_operators_expressions_conditional_expressions
c_advanced_language_features_volatile
Volatile
c_advanced_language_features_volatile->c_memory_exercise_linked_list
c_advanced_language_features_atomic
Compiler Intrinsics
c_advanced_language_features_alignment->c_advanced_language_features_atomic
c_advanced_language_features_atomic->c_advanced_language_features_volatile
c_program_flow_break_and_continue
break and continue
c_program_flow_loops_do_while
Loops: do - while
c_program_flow_break_and_continue->c_program_flow_loops_do_while
c_program_flow_else_if
else - if
c_program_flow_if_else
if - else
c_program_flow_else_if->c_program_flow_if_else
c_program_flow_loops_while_and_for
Loops: while and for
c_program_flow_loops_do_while->c_program_flow_loops_while_and_for
c_program_flow_goto_and_labels->c_program_flow_break_and_continue
c_program_flow_statements_and_blocks
Statements and Blocks
c_program_flow_if_else->c_program_flow_statements_and_blocks
c_program_flow_switch
switch
c_program_flow_switch->c_program_flow_else_if
c_program_flow_loops_while_and_for->c_program_flow_switch
c_program_flow_statements_and_blocks->c_types_operators_expressions_precedence_and_order_of_evaluation
c_pointers_and_arrays_exercise_swap
Exercise: Function That Swaps Two Variables
c_pointers_and_arrays_pointers_and_function_arguments
Pointers as Function Parameters
c_pointers_and_arrays_exercise_swap->c_pointers_and_arrays_pointers_and_function_arguments
c_pointers_and_arrays_pointers_and_addresses
Pointers and Addresses
c_pointers_and_arrays_pointers_and_addresses->c_functions_and_program_structure_c_preprocessor_advanced
c_pointers_and_arrays_pointers_and_arrays
Pointers and Arrays
c_pointers_and_arrays_pointers_and_arrays->c_pointers_and_arrays_exercise_swap
c_pointers_and_arrays_pointers_and_function_arguments->c_pointers_and_arrays_pointers_and_addresses
c_pointers_and_arrays_command_line_arguments->c_pointers_and_arrays_pointers_and_arrays
linux_sysprog_posix_threads_exercise_mutex
Mutex: Solve Load/Modify/Store Conflict
linux_sysprog_posix_threads_mutex
Synchronization
linux_sysprog_posix_threads_exercise_mutex->linux_sysprog_posix_threads_mutex
linux_sysprog_posix_threads_exercise_pthcreate_racecondition
Thread Creation, Race Condition
linux_sysprog_posix_threads_mutex->linux_sysprog_posix_threads_exercise_pthcreate_racecondition
linux_sysprog_posix_threads_lifecycle
Thread Life Cycle
linux_sysprog_posix_threads_exercise_pthcreate_racecondition->linux_sysprog_posix_threads_lifecycle
linux_sysprog_posix_threads_condition_variable
Communication: Condition Variable
linux_sysprog_posix_threads_condition_variable->linux_sysprog_posix_threads_exercise_mutex
linux_sysprog_posix_threads_basics
Basics
linux_sysprog_scheduling_basics
Scheduling (and Multitasking)
linux_sysprog_posix_threads_basics->linux_sysprog_scheduling_basics
linux_sysprog_posix_threads_lifecycle->linux_sysprog_posix_threads_basics
linux_sysprog_basics_syscalls
System Calls vs. Library Functions
linux_toolchain_basics
Toolchain: Basics
linux_sysprog_basics_syscalls->linux_toolchain_basics
linux_sysprog_basics_groupnode
Linux Systems Programming: Basics
linux_sysprog_basics_groupnode->linux_sysprog_basics_syscalls
linux_sysprog_basics_errorhandling
Error Handling
linux_sysprog_basics_groupnode->linux_sysprog_basics_errorhandling
linux_sysprog_basics_errorhandling->linux_sysprog_basics_syscalls
linux_sysprog_blocking_io_blocking_io
Blocking I/O: What is That? (“Everything is a file”)
linux_sysprog_fileio_basics
File I/O: Basics
linux_sysprog_blocking_io_blocking_io->linux_sysprog_fileio_basics
linux_sysprog_scheduling_basics->linux_sysprog_blocking_io_blocking_io
linux_sysprog_fileio_basics->linux_sysprog_basics_groupnode
linux_basics_permissions_basics
Permissions: Mode, User and Group Ownership
linux_sysprog_fileio_basics->linux_basics_permissions_basics
linux_basics_intro_process
Processes, Scheduling, Address Spaces
linux_basics_intro_overview
Overview
linux_basics_intro_process->linux_basics_intro_overview
linux_basics_shell_ls
Directory Listings: The ls Command
linux_basics_permissions_basics->linux_basics_shell_ls
linux_basics_shell_paths
Absolute and Relative Paths
linux_basics_shell_commandline
Commandline
linux_basics_shell_paths->linux_basics_shell_commandline
linux_basics_shell_ls->linux_basics_intro_overview
linux_basics_shell_ls->linux_basics_shell_paths
linux_basics_shell_cwd
Current Working Directory
linux_basics_shell_ls->linux_basics_shell_cwd
linux_basics_shell_file_dir_create_rm
Creating And Removing Files and Directories
linux_basics_shell_file_dir_create_rm->linux_basics_shell_paths
linux_basics_shell_file_dir_create_rm->linux_basics_shell_cwd
linux_basics_shell_commandline->linux_basics_intro_overview
linux_basics_shell_cwd->linux_basics_intro_process
linux_basics_shell_cwd->linux_basics_shell_paths
linux_basics_shell_cwd->linux_basics_shell_commandline
linux_toolchain_basics->linux_basics_shell_file_dir_create_rm
cxx03_introduction
Introduction
cxx03_introduction->c_introduction_installation
cxx03_data_encapsulation_object_copy
Object Copy (And Resource Management): There Be Dragons
cxx03_data_encapsulation_ctor_dtor
More Constructors, Destructors
cxx03_data_encapsulation_object_copy->cxx03_data_encapsulation_ctor_dtor
cxx03_data_encapsulation_ctor_default
Default Constructor
cxx03_data_encapsulation_ctor_custom
Custom Constructor
cxx03_data_encapsulation_ctor_default->cxx03_data_encapsulation_ctor_custom
cxx03_data_encapsulation_classes_objects
Classes and Objects
cxx03_data_encapsulation_ctor_custom->cxx03_data_encapsulation_classes_objects
cxx03_data_encapsulation_classes_objects->cxx03_introduction
cxx03_data_encapsulation_c
Object Oriented Programming In Good Ol’ C
cxx03_data_encapsulation_classes_objects->cxx03_data_encapsulation_c
cxx03_data_encapsulation_ctor_dtor->cxx03_data_encapsulation_ctor_default
cxx03_data_encapsulation_ctor_dtor->cxx03_data_encapsulation_ctor_custom
cxx03_data_encapsulation_c->cxx03_introduction
cxx03_functions_and_methods_methods
Methods
cxx03_functions_and_methods_overloading
Overloading
cxx03_functions_and_methods_methods->cxx03_functions_and_methods_overloading
cxx03_functions_and_methods_overloading->cxx03_data_encapsulation_classes_objects
cxx03_functions_and_methods_references
References
cxx03_functions_and_methods_this
this
cxx03_functions_and_methods_references->cxx03_functions_and_methods_this
cxx03_functions_and_methods_const
const
cxx03_functions_and_methods_const->cxx03_functions_and_methods_methods
cxx03_functions_and_methods_this->cxx03_functions_and_methods_const
cxx11_filesystem
std::filesystem
cxx11_perfect_forwarding
Perfect Forwarding
cxx11_new_language_features_move_pf_overview
Overview (Lvalues, Rvalues, And Such)
cxx11_perfect_forwarding->cxx11_new_language_features_move_pf_overview
cxx11_new_language_features_override
override
cxx11_new_language_features_range_based_for_map
Case Study: Range Based for On std::map
cxx11_new_language_features_range_based_for
Range Based for Loops: Introduction
cxx11_new_language_features_range_based_for_map->cxx11_new_language_features_range_based_for
cxx11_new_language_features_final
final
cxx11_new_language_features_default
= default
cxx11_new_language_features_constexpr
constexpr
cxx11_new_language_features_strongly_typed_enums
Strongly Typed enum
cxx11_new_language_features_strongly_typed_enums->c_program_sanity_discrete_values
cxx11_introduction_history
History, Background
cxx11_new_language_features_strongly_typed_enums->cxx11_introduction_history
cxx11_new_language_features_delete
= delete
cxx11_new_language_features_auto
auto
cxx11_new_language_features_auto->cxx11_new_language_features_strongly_typed_enums
cxx11_new_language_features_structured_binding
Structured Binding
cxx11_new_language_features_structured_binding->cxx11_new_language_features_auto
cxx11_new_language_features_miscellaneous
Miscellaneous
cxx11_new_language_features_miscellaneous->cxx11_new_language_features_move_pf_overview
cxx11_new_language_features_livehack_smartptr_move
SmartPtr With Move Semantics
cxx11_new_language_features_livehack_smartptr_move->cxx11_new_language_features_move_pf_overview
cxx11_smart_pointers_introduction_livehack
(Trying To) Handwrite A Smart Pointer Class in C++ Before C++11
cxx11_new_language_features_livehack_smartptr_move->cxx11_smart_pointers_introduction_livehack
cxx11_new_language_features_delegating_ctor
Delegating Constructor
cxx11_new_language_features_delegating_ctor->cxx11_new_language_features_range_based_for
cxx11_new_language_features_brace_initialization_intro
Brace Initialization: Introduction
cxx11_new_language_features_range_based_for->cxx11_new_language_features_brace_initialization_intro
cxx11_new_language_features_lambda_lambda
Lambda
cxx11_new_language_features_lambda_lambda_capture
Lambda: More Capturing
cxx11_new_language_features_lambda_lambda_capture->cxx11_new_language_features_lambda_lambda
cxx11_new_language_features_lambda_lambda_is_functor
Live Hacking: Handwritten Functors (Too Much Boilerplate)
cxx11_new_language_features_lambda_lambda_is_functor_pitfall
Live Hacking: Handwritten Functors, And Capturing By Reference (Pitfalls)
cxx11_new_language_features_lambda_lambda_is_functor_pitfall->cxx11_new_language_features_lambda_lambda_is_functor
cxx11_new_language_features_brace_initialization_mess
Brace Initialization: A Mess
cxx11_new_language_features_brace_initialization_implementor_view
std::initializer_list: Brace Initialization, Implementor’s View
cxx11_new_language_features_brace_initialization_mess->cxx11_new_language_features_brace_initialization_implementor_view
cxx11_new_language_features_brace_initialization_mess->cxx11_new_language_features_brace_initialization_intro
cxx11_new_language_features_brace_initialization_intro->cxx11_new_language_features_auto
cxx11_new_language_features_move_pf_afterword
Afterword, Further Reading
cxx11_new_language_features_move_pf_afterword->cxx11_perfect_forwarding
cxx11_new_language_features_move_pf_livehack_using_string_move
Using Move Semantics In Own Code
cxx11_new_language_features_move_pf_afterword->cxx11_new_language_features_move_pf_livehack_using_string_move
cxx11_new_language_features_move_pf_overview->cxx03_data_encapsulation_object_copy
cxx11_new_language_features_move_pf_overview->cxx03_functions_and_methods_references
cxx11_smart_pointers_unique_ptr
std::unique_ptr
cxx11_new_language_features_move_pf_overview->cxx11_smart_pointers_unique_ptr
cxx11_new_language_features_move_pf_livehack_using_string_move->cxx11_new_language_features_move_pf_overview
cxx11_new_language_features_move_pf_livehack_string_move
Implementing Move Semantics (class String, Live Hacked)
cxx11_new_language_features_move_pf_livehack_using_string_move->cxx11_new_language_features_move_pf_livehack_string_move
cxx11_new_language_features_move_pf_livehack_string_move->cxx11_new_language_features_move_pf_overview
cxx11_introduction_overview_livehacking
A Live-Hacked Tour Around The New C++
cxx11_introduction_overview_livehacking->cxx11_introduction_history
cxx11_introduction_history->c_introduction_installation
cxx11_multithreading_mutex
std::mutex And Friends
cxx11_multithreading_mutex->linux_sysprog_posix_threads_mutex
cxx11_multithreading_race_conditions
Race Conditions
cxx11_multithreading_mutex->cxx11_multithreading_race_conditions
cxx11_multithreading_thread
Threads in C++
cxx11_multithreading_thread->linux_sysprog_posix_threads_lifecycle
cxx11_multithreading_introduction
Threads Introduction
cxx11_multithreading_thread->cxx11_multithreading_introduction
cxx11_functions_functions_function
std::function
cxx11_multithreading_introduction->cxx11_functions_functions_function
cxx11_multithreading_chrono
std::chrono
cxx11_multithreading_scoped_locking
Scoped Locking
cxx11_multithreading_scoped_locking->cxx11_multithreading_mutex
cxx11_multithreading_atomics
std::atomic
cxx11_multithreading_atomics->cxx11_multithreading_race_conditions
cxx11_multithreading_promise_future
std::promise and std::future (And Some std::chrono) (Some Live Hacking)
cxx11_multithreading_promise_future->cxx11_multithreading_thread
cxx11_multithreading_race_conditions->linux_sysprog_posix_threads_exercise_pthcreate_racecondition
cxx11_multithreading_race_conditions->cxx11_multithreading_thread
cxx11_multithreading_condition_variable
std::condition_variable (Live Hacking Multithreaded Queue)
cxx11_multithreading_condition_variable->linux_sysprog_posix_threads_condition_variable
cxx11_multithreading_condition_variable->cxx11_multithreading_mutex
cxx11_multithreading_condition_variable->cxx11_multithreading_promise_future
cxx11_functions_functions_bind
std::bind
cxx11_smart_pointers_closing_words
Smart Pointers: Closing Words
cxx11_functions_functions_bind->cxx11_smart_pointers_closing_words
cxx11_functions_functions_function->cxx11_functions_functions_bind
cxx11_smart_pointers_introduction
Introduction
cxx11_smart_pointers_introduction_livehack->cxx11_smart_pointers_introduction
cxx11_smart_pointers_introduction->cxx11_new_language_features_miscellaneous
cxx11_smart_pointers_weak_ptr
std::weak_ptr
cxx11_smart_pointers_weak_ptr->cxx11_smart_pointers_introduction
cxx11_smart_pointers_shared_ptr
std::shared_ptr
cxx11_smart_pointers_weak_ptr->cxx11_smart_pointers_shared_ptr
cxx11_smart_pointers_closing_words->cxx11_smart_pointers_unique_ptr
cxx11_smart_pointers_closing_words->cxx11_smart_pointers_shared_ptr
cxx11_smart_pointers_unique_ptr->cxx11_smart_pointers_introduction
cxx11_smart_pointers_shared_ptr->cxx11_smart_pointers_introduction
cxx11_smart_pointers_shared_ptr->cxx11_smart_pointers_unique_ptr
cxx11_exercises_bag_unique
Exercise: Bag Of Items, By Unique Reference
cxx11_exercises_bag_unique->cxx11_new_language_features_auto
cxx11_exercises_bag_unique->cxx11_new_language_features_range_based_for
cxx11_exercises_bag_unique->cxx11_smart_pointers_unique_ptr
cxx11_exercises_bag_copy
Exercise: Bag Of Items, By Copy
cxx11_exercises_bag_unique->cxx11_exercises_bag_copy
cxx11_exercises_bag_copy->cxx11_new_language_features_auto
cxx11_exercises_bag_copy->cxx11_new_language_features_range_based_for
cxx11_exercises_bag_shared
Exercise: Bag Of Items, By Shared Reference
cxx11_exercises_bag_shared->cxx11_new_language_features_auto
cxx11_exercises_bag_shared->cxx11_new_language_features_range_based_for
cxx11_exercises_bag_shared->cxx11_smart_pointers_weak_ptr
cxx11_exercises_bag_shared->cxx11_smart_pointers_shared_ptr
cxx11_exercises_bag_shared->cxx11_exercises_bag_unique