Archives
Most Popular Tags
cpp (234) cpp17 (129) cpp20 (104) standard-library (62) books (42) cpp11 (40) experiments (34) performance (33) stl (32) cpp14 (24) templates (24) vocabulary-types (24) cpp23 (23) links (22) libraries (21) guest-post (20) visual-studio (20) tips (19) tools (19) opengl (16) smart-pointers (16) iso (15) algorithms (14) initialization (13)2024
- C++23 Language Features and Reference Cards
- Around the World in C++: Exploring Time Zones with std::chrono
- What is the current time around the world? Utilizing std::chrono with time zones in C++23
- C++ String Conversion: Exploring std::from_chars in C++17 to C++26
- std::initializer_list in C++ 2/2 - Caveats and Improvements
- Boost File Scanning Speed: Query File Attributes on Windows 50x Faster
- Enum Class Improvements for C++17, C++20 and C++23
- 22 Common Filesystem Tasks in C++20
- Displaying File Time in C++: Finally fixed in C++20
- C++17 in Detail: Filesystem in The Standard Library
- Function Composition and the Pipe Operator in C++23 – With std::expected
- std::expected - Monadic Extensions
- Understand internals of std::expected
- Using std::expected from C++23
- Parsing Numbers At Compile Time with C++17, C++23, and C++26
2023
- Six Handy Operations for String Processing in C++20/23
- Formatting Custom types with std::format from C++20
- C++20, Spans, Threads and Fun
- How to use std::span from C++20
- Spans, string_view, and Ranges - Four View types (C++17 to C++23)
- 2 Lines Of Code and 3 C++17 Features - The overload Pattern
- Beautiful C++: 30 Core Guidelines... Book Review
- How to Use Monadic Operations for `std::optional` in C++23
- Five Advanced Initialization Techniques in C++: From reserve() to piecewise_construct and More.
- Understanding Ranges Views and View Adaptors Objects in C++20/C++23
- Introduction to Programming with C++ For Engineers, Book Review
- Finite State Machine with std::variant - Vending Machine
- Finite State Machine with std::variant
- Five Awesome C++ Papers for the H1 2023 - C++26, Varna and More
- Solving Undefined Behavior in Factories with constinit from C++20
- Storage duration and Non-local Objects in C++
- Q&A - C++ Initialization
- C++ Initialization Quiz
- C++ Initialization Story in Print
- C++20 Ranges: The Key Advantage - Algorithm Composition
- Combining Collections with Zip in C++23 for Efficient Data Processing
- Examples of Projections from C++20 Ranges
- Fun with printing tables with std::format and C++20
- std::initializer_list in C++ 1/2 - Internals and Use Cases
- Everything You Need to Know About std::variant from C++17
2022
- C++ at the end of 2022
- See My New Book: C++ Initialization Story
- Structured bindings in C++17, 5 years later
- C++ in 2022 - Survey
- const vs constexpr vs consteval vs constinit in C++20
- How to Measure String SSO Length with constinit and constexpr
- Summary of Non-Regular Data Members in C++
- Smaller C++20 Features - My Presentation
- All Major C++17 Features You Should Know
- 5 Ways to Improve or Avoid Loops in C++20...23
- Reducing Signed and Unsigned Mismatches with std::ssize()
- Integer Conversions and Safe Comparisons in C++20
- 20+ Ways to Init a String, Looking for Sanity
- Writing An Open-Source C++ Static Analysis Tool
- Simplify Code with if constexpr and Concepts in C++17/C++20
- 5 Curious C++ Lambda Examples: Recursion, constexpr, Containers and More
- Five tricky topics for data members in C++20
- (Non) Static Data Members Initialization, from C++11 till C++20
- C++20 Ranges Algorithms - sorting, sets, other and C++23 updates
- Embracing Modern C++ Safely, Book Review
- C++20 Ranges Algorithms - 11 Modifying Operations
- Speeding up Pattern Searches with Boyer-Moore Algorithm from C++17
- C++20 Ranges Algorithms - 7 Non-modifying Operations
- Three Benchmarks of C++20 Ranges vs Standard Algorithms
- SFINAE, Immediate Context, Operator << and '\n'
- Modern C++ For Absolute Beginners, Book Review
- Ways to Refactor Toggle/Boolean Parameters in C++
- C++ Templates: How to Iterate through std::tuple: std::apply and More
- C++ Templates: How to Iterate through std::tuple: the Basics
- 20 Smaller yet Handy C++20 Features
- Simplify template code with fewer typename in C++20
2021
- C++ at the end of 2021
- C++ in 2021 - Survey
- Examples of 7 Handy Functions for Associative Containers in Modern C++
- C++ Links #6: C++23 Progress, Command Line, Containers, and more!
- Designated Initializers in C++20
- C++20: Heterogeneous Lookup in (Un)ordered Containers
- 6 More Ways to Refactor new/delete into unique ptr
- C++ Smart Pointers and Arrays
- 6 Ways to Refactor new/delete into unique ptr
- C++ Smart Pointers Gotchas
- C++ Smart Pointers Reference Card
- C++ Return: std::any, std::optional, or std::variant?
- C++20 Oxymoron: constexpr virtual
- constexpr vector and string in C++20 and One Big Limitation
- Empty Base Class Optimisation, no_unique_address and unique_ptr
- Stricter Expression Evaluation Order in C++17
- How to Parallelise CSV Reader - C++17 in Practice
- C++ Lambda Story in Spanish!
- Software Architecture with C++, Book Review
- Five Awesome C++ Papers for the Q2 2021 and C++23 Status
- Get One year of Extra C++ Content + My First Year at Patreon
- How To Use std::visit With Multiple Variants and Parameters
- Coding without Google
- Extensible Stream Logging in Modern C++
- How to Convert Numbers into Text with std::to_chars in C++17
- How To Detect Function Overloads in C++17/20, std::from_chars Example
- 12 Different Ways to Filter Containers in Modern C++
- Three Myths About Floating-Point Numbers
- How to Filter Elements - the Talk and Optimizations
- C++ Software Security Sins: Basic Issues
- Predefined C++20 Concepts: Callables
- Top-7 Performance Traps for Every Developer
- C++20 Concepts - a Quick Introduction
- Five Awesome C++ Papers for the Q1 2021 and C++23 Status
- Strong Types in C++: A Concrete Example
- constexpr Dynamic Memory Allocation, C++20
- Non-Terminal Variadic Parameters and Default Values
- Improving Print Logging with Line Pos Info & Modern C++
- Parallel Compilation Experiments in C++Builder and Dev C++
- Implementing Parallel copy_if in C++
- Modern C++: Safety and Expressiveness with override and final
- C++ Lambda Story in Print
- Visual Studio's Natvis Debugging Framework Tutorial
- A Debugging Tip: Write Custom Visualizers in Visual Studio
2020
- C++ at the end of 2020
- One Trick with Private Names and Function Templates
- Why Not a Functor and Lambda Story Updates
- Under the Covers of C++ Lambdas: Captures, Captures, Captures
- How to Share Code with Const and Non-Const Functions in C++
- Runtime Polymorphism with std::variant and std::visit
- C++20 Ranges, Projections, std::invoke and if constexpr
- 17 Smaller but Handy C++17 Features
- Increased Complexity of C++20 Range Algorithms Declarations - Is It Worth it?
- How To Stay Sane with Modern C++
- How to Pass a Variadic Pack as the First Argument of a Function in C++
- How I Improved My Legacy C++ Project with PVS-Studio
- Replacing unique_ptr with C++17's std::variant a Practical Experiment
- 6 Efficient Things You Can Do to Refactor a C++ Project
- C++17: Polymorphic Allocators, Debug Resources and Custom Types
- starts_with() and ends_with() for Strings in C++20
- Lambda Week: Tricks
- Lambda Week: Going Generic
- Lambda Week: Capturing Things
- Lambda Week: Syntax changes, C++11 to C++20
- C++ Lambda Story is 100% Complete!
- See My Talk: Empty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
- Polymorphic Allocators, std::vector Growth and Hacking
- Asynchronous Tasks with std::future and std::async from C++11
- C++ Lambdas, Threads, std::async and Parallel Algorithms
- 5 Advantages of C++ Lambda Expressions and How They Make Your Code Better
- Spaceship Generator for May the 4th in C++ - Results!
- How to Use C++ for Azure Storage
- Notes on C++ SFINAE, Modern C++ and C++20 Concepts
- How to Add Notes and Navigation Metadata Directly in Source Code in Visual Studio
- Vector of Objects vs Vector of Pointers
- Const collection of unique_ptr, options and design choices
- An Extraterrestrial Guide to C++20 Text Formatting
- Five Awesome C++ Papers for the Prague ISO Meeting and C++20 Status
- Activity Indicators - Example of a Modern C++ Library
- C++20 Reference Card
- "Use the Force, Luke"... or Modern C++ Tools
- A Gentle Intro to Developing C++ Apps for AWS and S3
2019
- C++ at the end of 2019
- How C++17 Benefits from the Boost Libraries
- Threading in C++17: Loopers & Dispatchers
- A Programmer’s Guide to Performance Analysis & Tuning on Modern CPUs
- Lazy initialisation in C++ and Multi-threading
- Five Awesome C++ Papers for the Belfast ISO Meeting and C++20 Status
- Lazy Initialisation in C++
- IIFE for Complex Initialization
- C++ Ecosystem: Compilers, IDEs, Tools, Testing and More
- How To Use Vocabulary Types from C++17, Presentation
- C++17 In Detail - Print Version!
- New new() - The C++17's Alignment Parameter for Operator new()
- Moved or Not Moved - That Is the Question!
- Improve Multiplatform Code With __has_include and Feature Test Macros
- Five Awesome C++ Papers for Cologne ISO Meeting
- [Quick Case] Surprising Conversions of const char* to bool
- C++17 In Detail, June Update: Foreword and Printing Tests
- Space Game: A std::variant-Based State Machine by Example
- Heterogeneous Lookup in Ordered Containers, C++14 Feature
- [Tip] How to Reference the C++ Standard or a Proposal
- Converting from Boost to std::filesystem
- How to Iterate Through Directories in C++
- Dark Corner of C++ Corner Cases
- Lambdas: From C++11 to C++20, Part 2
- C++ Links #22
- C++17 In Detail is 100% Ready!
- C++ Links #21
- Lambdas: From C++11 to C++20, Part 1
- C++ Links #20
- Five Awesome C++ Papers For Kona 2019 ISO Meeting
- C++ Links #19
- C++ Links #18
- C++ Links #17
- std::filesystem in C++17 In Detail
- C++ Links #16
- std:filesystem::file_size Advantages and Differences
- C++ Links #15
- How to get File Size in C++?
- C++ Links #14
- C++ Links #13
2018
- C++ at the End of 2018
- How To Parallelise CSV Reader - New Chapter
- C++ Links #12
- C++ Links #11
- How to Boost Performance with Intel Parallel STL and C++17 Parallel Algorithms
- C++ Links #10
- The Amazing Performance of C++17 Parallel Algorithms, is it Possible?
- C++ Links #9
- Parallel Algorithms Chapter in C++17 In Detail
- C++ Links #8
- Five Awesome C++ Papers for San Diego
- C++ Links #7
- Let's Talk About String Operations in C++17
- C++ Links #6
- C++ Links #5
- Conversions, Searchers and C++17 In Detail Updates
- C++ Links #4
- C++ Links #3
- Professional C++ 4th Edition, Book Review
- C++ Links #2
- C++ Links #1
- "C++17 In Detail" First Update
- Preprocessing Phase for C++17's Searchers
- C++17 In Detail Book!
- How to Initialize a String Member
- Speeding Up string_view String Split Implementation
- Performance of std::string_view vs std::string from C++17
- In-Place Construction for std::any, std::variant and std::optional
- Menu Class - Example of Modern C++17 STL features
- Parallel STL And Filesystem: Files Word Count Example
- Examples of Parallel Algorithms From C++17
- Everything You Need to Know About std::any from C++17
- A Wall of Your std::optional Examples
- Show me your code: std::optional
- Error Handling and std::optional
- C++ Templates - The Complete Guide 2nd Book Review
- Using C++17 std::optional
- Refactoring with C++17 std::optional
- Productive C++ Developer, my recent talk
- Deprecating Raw Pointers in C++20
- The C++ Standard Library book - overview & giveaway
- What happens to your static variables at the start of the program?
- Static Variables Initialization in a Static Library, Example
- Factory With Self-Registering Types
- How to propagate const on a pointer data member?
- pimpl vs Abstract Interface - a practical tutorial
- The Pimpl Pattern - what you should know
2017
- C++ Status at the end of 2017
- How a weak_ptr might prevent full memory cleanup of managed object
- 5 ways how unique_ptr enhances resource safety in your code
- Summary of C++17 features
- code::dive 2017 conference report
- Enforcing code contracts with [[nodiscard]]
- Better code understanding with Sourcetrail
- Expressive C++ Coding Challenge Results
- How not_null can improve your code?
- Cpp Con 2017 Notes
- The Expressive C++17 Coding Challenge
- C++17 in detail: Summary & Bonus
- Learning from bugs and PVS-Studio Team
- C++17 in details: Standard Library Utilities
- C++17 STL Cookbook Book Review
- C++17 in details: Parallel Algorithms
- Blog summary for the first half of 2017
- C++17 in details: Code Simplification
- Review: The Complete Software Developer’s Career Guide
- C++17 in details: Attributes
- Randomizing lines from a file, a tool in VC++ 2017
- C++17 in details: Templates
- Modern C++ Programming Cookbook Review
- C++17 in details: language clarifications
- C++17 in details: fixes and deprecation
- Enhancing Visual Studio with Visual Assist
- Please stop with performance optimizations!
- Curious case of branch performance
- Packing bools, Parallel and More
- Packing Bools, Performance tests
- final_act - follow-up
- Beautiful code: final_act from GSL
- C++18, Why not?
- C++18 Next Year!
- Windows File Tests
- C++ Jobs and Predictions
- Modernize: Sink Functions
- Const, Move and RVO
2016
- C++ Status at the end of 2016
- 2016 Blog Summary
- Async Remote Book Review
- Debugging Tips Extra stuff
- Please Declare Your Variables as Const
- Variadic Templates and a Factory Function
- Wrapping Resource Handles in Smart Pointers
- Code And Graphics in Mid 2016
- 7 books that taught me how to code
- C++ (Core) Coding Guidelines
- 11 Debugging Tips That Will Save Your Time
- Google benchmark library
- Custom Deleters for C++ Smart Pointers
- Visual Studio C++ Productivity Tips
- The Matrix Updated
- Nice C++ Factory Implementation 2
- SFINAE Followup
- Revisiting An Old Benchmark - Vector of objects or pointers
- Micro benchmarking libraries for C++
- Simple Performance Timer
2015
- C++ Status at the end of 2015
- Visual Studio slow debugging and _NO_DEBUG_HEAP
- OpenGL SuperBible 7th
- Applying the Strategy Pattern
- Auto keyword in C++11
- PDB Was Not Found - Linker Warning
- Flexible Particle System - Summary
- Soft Skills - Book Review
- Vulkan
- Flexible particle system - Renderer optimization
- Finding memory leaks with Deleaker
- Persistent Mapped Buffers, Benchmark Results
- Persistent Mapped Buffers in OpenGL
- Errata and a Nice C++ Factory Implementation
2014
- C++ Status at the end of 2014
- Top 5 Beautiful C++ std Algorithms Examples
- 3 Tools to Understand New Code from Visual Assist
- Flexible Particle System - Code Optimization
- Flexible particle system - Optimization through tools
- OpenGL 4.5
- Review of "D Cookbook"
- Flexible particle system - How to start with Software Optimization
- Quick case: Char Pointer vs Char Array in C++
- Flexible particle system - OpenGL Renderer
- Automated Reports with C++
- Flexible particle system - Updaters
- Talk summary: The Last Thing D Needs by Scott Meyers
- Flexible particle system - Emitter and Generators
- Flexible particle system - The Container 2
- Vector of object vs Vector of pointers
- Flexible particle system - The Container
- Presentation - Native code performance on modern CPUs
- Flexible Particle System - Start
- Three Particle Effects
- Simple Water Simulation
2013
- C++ status at the end of 2013
- The Passionate Programmer
- Digging into SOIL Library for OpenGL
- Book: OpenGL Development Cookbook
- Code Kata - chop
- Book: The C++ Standard Library, 2nd
- #Include little toolkit
- Forward Declaration And a Pointer