Effective-Modern-Cpp
Sample code for the Effective Modern C++ book by Scott Meyers.
File Explorer
Download Latest Version (.zip)- array-to-pointer_decay_rule.cpp
- array_and_pointer_parameter_equivalence.cpp
- arrays_by_reference.cpp
- arrays_by_value.cpp
- case1_const.cpp
- case1_non_const.cpp
- case1_pointer.cpp
- case2_uref.cpp
- case3_pass_by_value.cpp
- CMakeLists.txt
- deduce_nb_array_elements.cpp
- function-to-pointer_decay_rule.cpp
- pinch_of_pseudocode.cpp
- things_to_remember.txt
- auto_deduction_vs_template_deduction.cpp
- auto_type_deduction.cpp
- CMakeLists.txt
- function_return_type_deduction.cpp
- things_to_remember.txt
- CMakeLists.txt
- compute_function_return_type_cpp11.h
- compute_function_return_type_cpp14.h
- decltype_auto_for_function_return_types_cpp14.cpp
- decltype_auto_for_normal_auto_variables_cpp14.cpp
- decltype_for_complicated_lvalues.cpp
- problem.cpp
- return_statements_cpp14.cpp
- string_deque.cpp
- things_to_remember.txt
- typical_cases.cpp
- uref_cpp11.h
- uref_cpp14.h
- boost_type_index.cpp
- CMakeLists.txt
- compiler_diagnostics.cpp
- ide_editors.cpp
- runtime_output01.cpp
- runtime_output02.cpp
- things_to_remember.txt
- auto.cpp
- CMakeLists.txt
- simple_joys.cpp
- things_to_remember.txt
- Widget.h
- CMakeLists.txt
- explicitly_typed_initializer_idiom.cpp
- invisible_proxy_types.cpp
- matrix_example.cpp
- things_to_remember.txt
- CMakeLists.txt
- empty_braces.cpp
- empty_braces_test_v1.cpp
- empty_braces_test_v2.cpp
- initialization_values.cpp
- initializer_lists1.cpp
- initializer_lists2.cpp
- initializer_lists3.cpp
- initializer_lists4.cpp
- parenthesis_braces_in_templates.cpp
- things_to_remember.txt
- vector_construction.cpp
- CMakeLists.txt
- code_clarity.cpp
- pointer_overload.cpp
- template_example_flat.cpp
- template_example_templatized.cpp
- template_example_templatized_cpp14.cpp
- things_to_remember.txt
- CMakeLists.txt
- function_pointers.cpp
- linked_list_synonym_with_alias_template01.cpp
- linked_list_synonym_with_alias_template02.cpp
- linked_list_synonym_with_typedef01.cpp
- linked_list_synonym_with_typedef02.cpp
- things_to_remember.txt
- wine.cpp
- CMakeLists.txt
- compilation_dependencies.cpp
- forward_declared_enums.cpp
- forward_declaring.cpp
- scoped_enums.cpp
- semantic_travesties01.cpp
- semantic_travesties02.cpp
- semantic_travesties03.cpp
- things_to_remember.txt
- underlying_type01.cpp
- underlying_type02.cpp
- unscoped_enums.cpp
- unscoped_enums_useful01.cpp
- unscoped_enums_useful02.cpp
- unscoped_enums_useful03.cpp
- unscoped_enums_useful04.cpp
- unscoped_enums_useful04_cpp14.cpp
- CMakeLists.txt
- Item12.cpp
- pointer_example.cpp
- things_to_remember.txt
- Widget.cpp
- CMakeLists.txt
- override_games.cpp
- override_legacy_code.cpp
- overriding_explained.cpp
- reference-qualified_member_functions_use_case_problem_demonstration.cpp
- reference-qualified_member_functions_use_case_problem_solution.cpp
- reference_qualifiers_example.cpp
- things_to_remember.txt
- typical_errors.cpp
- typical_errors_corrected.cpp
- typical_errors_with_override_added.cpp
- CMakeLists.txt
- insertion_cpp11.cpp
- insertion_cpp14.cpp
- insertion_cpp98.cpp
- non_member_cbegin.h
- things_to_remember.txt
- CMakeLists.txt
- example_with_move.cpp
- inconsistencies.cpp
- never_throw_exception.cpp
- things_to_remember.txt
- CMakeLists.txt
- constexpr_functions_cpp11.cpp
- constexpr_functions_cpp14.cpp
- constexpr_user-defined_types_cpp11.cpp
- constexpr_user-defined_types_cpp14.cpp
- constexpr_variables.cpp
- Point_cpp11.h
- Point_cpp14.h
- things_to_remember.txt
- CMakeLists.txt
- expensive_int.cpp
- Point.cpp
- Polynomial1.h
- Polynomial2.h
- Polynomial_with_mutex.h
- things_to_remember.txt
- undefined_behavior.cpp
- Widget1.h
- Widget2.h
- Widget3.h
- Base.cpp
- CMakeLists.txt
- StringTable01.cpp
- StringTable02.cpp
- things_to_remember.txt
- Widget01.cpp
- Widget02.cpp
- Widget03.cpp
- CMakeLists.txt
- custom_deleter_size.cpp
- investment.h
- investments_cpp11.cpp
- investments_cpp14.cpp
- things_to_remember.txt
- utils.h
- CMakeLists.txt
- multiple_control_blocks1.cpp
- multiple_control_blocks2.cpp
- shared_ptr_things_to_know.cpp
- things_to_remember.txt
- Widget.h
- CMakeLists.txt
- creation.cpp
- things_to_remember.txt
- CMakeLists.txt
- limitations_of_make_functions.cpp
- reasons_for_preferring_make_functions.cpp
- selfwritten_make_unique.cpp
- things_to_remember.txt
- widget.h
- CMakeLists.txt
- widget.cpp
- widget.h
- client.cpp
- CMakeLists.txt
- widget.cpp
- widget.h
- client.cpp
- CMakeLists.txt
- widget.cpp
- widget.h
- CMakeLists.txt
- gadget.h
- things_to_remember.txt
- annotation.cpp
- CMakeLists.txt
- move_constructor_with_forward.cpp
- move_constructor_with_move.cpp
- std_move_in_cpp11.cpp
- std_move_in_cpp14.cpp
- things_to_remember.txt
- typical_use_of_std_forward.cpp
- typical_use_of_std_forward.h
- CMakeLists.txt
- no_type_deduction.cpp
- record_time.cpp
- rrefs_examples.cpp
- things_to_remember.txt
- urefs_contexts.cpp
- urefs_form.cpp
- urefs_initialization.cpp
- CMakeLists.txt
- dont_use_move_with_urefs.cpp
- dont_use_move_with_urefs_solution.cpp
- matrix.cpp
- move_or_forward_only_on_final_use.cpp
- reduce_and_copy.cpp
- return_value_optimization.cpp
- rrefs_are_moveable.cpp
- things_to_remember.txt
- urefs_maybe_moveable.cpp
- CMakeLists.txt
- logAndAdd_inefficient.cpp
- logAndAdd_with_uref.cpp
- logAndAdd_with_uref_overloaded.cpp
- Person.cpp
- things_to_remember.txt
- alternative_pass_by_value.cpp
- CMakeLists.txt
- constraining_templates01.cpp
- constraining_templates02_cpp11.cpp
- constraining_templates02_cpp14.cpp
- constraining_templates03_cpp14.cpp
- constraining_templates04_cpp14.cpp
- tag_dispatch01.cpp
- tag_dispatch02.cpp
- things_to_remember.txt
- CMakeLists.txt
- conceptual_std_forward_implementation_cpp11.h
- conceptual_std_forward_implementation_cpp14.h
- reference_collapsing_contexts01.cpp
- reference_collapsing_contexts01.h
- reference_collapsing_contexts02.cpp
- reference_collapsing_contexts02.h
- refs_to_refs.cpp
- std_forward_common_usecase.h
- things_to_remember.txt
- CMakeLists.txt
- moving_containers.cpp
- things_to_remember.txt
- bitfields.cpp
- braced_initializers.cpp
- CMakeLists.txt
- core_of_forwarding.h
- declaration-only_integral_static_const_data_members.cpp
- null_pointers.cpp
- overloaded_function_names_and_template_names.cpp
- things_to_remember.txt
- by_reference_capture.cpp
- CMakeLists.txt
- things_to_remember.txt
- utils.cpp
- utils.h
- Widget.cpp
- Widget.h
- CMakeLists.txt
- init_capture_cpp11.cpp
- init_capture_cpp14.cpp
- move_capture1_cpp11.cpp
- move_capture1_cpp14.cpp
- move_capture2.cpp
- Widget.cpp
- Widget.h
- CMakeLists.txt
- item35.cpp
- alarm.h
- alarm_extra.h
- alarm_with_lambda_and_overload_cpp14.cpp
- alarm_with_lambda_cpp11.cpp
- alarm_with_lambda_cpp14.cpp
- alarm_with_std_bind_and_overload_cpp14.cpp
- alarm_with_std_bind_cpp11.cpp
- alarm_with_std_bind_cpp14.cpp
- alarm_with_std_bind_incorrect.cpp
- between_with_lambda_cpp11.cpp
- between_with_lambda_cpp14.cpp
- between_with_std_bind_cpp11.cpp
- between_with_std_bind_cpp14.cpp
- CMakeLists.txt
- compress.h
- compress_with_lambda.cpp
- compress_with_std_bind.cpp
- polymorphic_function_objects_with_lambda_cpp14.cpp
- polymorphic_function_objects_with_std_bind.cpp
- things_to_remember.txt
- TODO.txt
- CMakeLists.txt
- software_threads.cpp
- task_based_approach.cpp
- things_to_remember.txt
- thread_based_approach.cpp
- CMakeLists.txt
- default_launch_policy.cpp
- guaranteeing_truly_asynchronous_execution.cpp
- interesting_implications.cpp
- really_async_cpp11.cpp
- really_async_cpp14.cpp
- things_to_remember.txt
- thread_local_storage.cpp
- wait-based_loops.cpp
- wait-based_loops_fixed.cpp
- CMakeLists.txt
- example1.cpp
- example2.cpp
- things_to_remember.txt
- ThreadRAII.h
- utils.h
- CMakeLists.txt
- example1.cpp
- example2.cpp
- .gitignore
- .travis.yml
- CMakeLists.txt
- compilers.txt
- README.md
// repository documentation
Was this content helpful?
(0 ratings)
