Fekir's Blog Categories Keywords About Me Policies

  • 2025-05-22 : How to assemble an Android Program
  • 2025-05-07 : Helper function for creating a handwritten vtable
  • 2025-05-01 : Owning type erasure on the stack
  • 2025-04-18 : String parameters
  • 2025-04-09 : Compile-time testing in C++
  • 2025-03-22 : Use ODR violations in C++ for removing old code
  • 2025-02-21 : A C++ class generator
  • 2025-01-22 : Constructors and related functions
  • 2025-01-07 : Design a short string class
  • 2024-10-18 : Register function at link time
  • 2024-09-29 : A C++ test suite in 100 lines of code
  • 2024-09-20 : Virtual functions, overloads, and default parameters - pick one
  • 2024-09-11 : Conditional compilation
  • 2024-08-25 : Query the number of elements in an array
  • 2024-06-01 : Self-hashing code in C++
  • 2024-03-31 : Lazy initialization, an alternative to double-checked locking
  • 2024-02-17 : Generic owning type erasure
  • 2024-02-10 : Introduce chrono in an existing codebase
  • 2024-02-01 : Query properties of a class
  • 2024-01-11 : Destructure a C++ function
  • 2023-12-06 : Owning type erasure for simple types
  • 2023-11-21 : Execute a function after a return statement
  • 2023-11-15 : Comma operator in C++
  • 2023-10-10 : Detect transparent comparators
  • 2023-10-07 : Insert an element in a map efficiently
  • 2023-09-14 : Prefer function overloads to std::variant
  • 2023-08-26 : Mapping types in C++
  • 2023-07-31 : Dependency injection in CMake
  • 2023-06-01 : CMake, MSVC, and Ninja
  • 2023-05-11 : Force null checks
  • 2022-12-19 : dynamic_cast and multiple inheritance
  • 2022-12-10 : Magic numbers for runtime checks
  • 2022-11-25 : Micro-optimizations
  • 2022-10-22 : When you cannot call hidden friends in C++
  • 2022-10-15 : How to write friend functions
  • 2022-09-19 : decltype on a temporary lambda
  • 2022-09-04 : Type erased view types in C++
  • 2022-08-16 : Find and fix code smells in C++ with regexes
  • 2022-07-04 : Toolchain file in CMake
  • 2022-06-15 : Undefined behavior - the ugly
  • 2022-06-04 : Write a custom virtual table in C++
  • 2022-03-04 : Analyze configure times with CMake
  • 2022-01-30 : Analyze build times with clang
  • 2022-01-11 : How to declare function pointers
  • 2021-12-10 : Toolbox of a GNU/Linux C++ programmer
  • 2021-10-30 : Compile-time string operations
  • 2021-10-24 : Macros usages in C++
  • 2021-09-24 : A minimal C++ development environment
  • 2021-09-16 : Guaranteed copy elision
  • 2021-08-09 : constexpr tree structures
  • 2021-08-03 : constexpr linked list
  • 2021-07-25 : natstepfilter
  • 2021-06-25 : Natvis files
  • 2021-06-12 : std::span, the missing constructor
  • 2021-06-05 : Less assembly does not mean faster code
  • 2021-05-28 : Clang-tidy on Windows
  • 2021-04-21 : Deducing return types in C++
  • 2021-03-15 : Linker error with static member variable
  • 2021-01-27 : Namespace vs struct
  • 2021-01-10 : Decomposing an expression
  • 2021-01-03 : C++ performance guidelines
  • 2020-12-17 : string_view(s)
  • 2020-10-05 : How to force return value optimization
  • 2020-10-01 : Thoughts on public virtual inheritance
  • 2020-08-28 : Restrict interface with private inheritance
  • 2020-08-17 : Library dependency graphs in CMake
  • 2020-08-01 : The private implementation pattern (PIMPA)
  • 2020-07-25 : Extending the generic thread-safe mutexed_obj class
  • 2020-07-13 : How to envelop a class with suffixes and prefixes and discover properties fields in C++
  • 2020-07-07 : We already have uniform initialization, stop proposing braced initialization as a solution for everything
  • 2020-01-13 : chroot as docker alternative for building
  • 2019-12-17 : Docker process creation overhead when compiling
  • 2019-10-21 : Name your conversions
  • 2019-09-30 : Custom static analysis with Cppcheck
  • 2019-09-23 : Test failures in C++
  • 2019-09-16 : Tracing with GCC
  • 2019-09-09 : fmove
  • 2019-09-02 : Post-build static analysis - pfunct and pahole
  • 2019-08-26 : Post-build static analysis
  • 2019-08-18 : Global variables in C++ libraries
  • 2019-06-30 : Arcane C++ rules, namespaces and overloads
  • 2019-06-17 : Detect member variables since C++11
  • 2019-03-05 : Sharing data between threads
  • 2018-11-20 : Deprecate and delete
  • 2018-09-04 : Function poisoning in C and C++
  • 2018-04-07 : Floating in C++ - part 7 - Runge-Kutta
  • 2018-02-06 : Floating in C++ - part 6 - Approximating the Solution to the Cauchy Problem
  • 2017-12-12 : Floating in C++ - part 5 - Linear algebra
  • 2017-11-20 : Floating in C++ - part 4 - Testing
  • 2017-09-24 : Floating in C++ - part 3 - Integration
  • 2017-09-13 : Floating in C++ - part 2 - Interpolation
  • 2017-08-27 : Floating in C++ - part 1 - Root problem
  • 2017-08-19 : Floating in C++
  • 2017-07-20 : C++ comparison operators

Copyright © 2017-2025

Code from this blog, unless otherwise mentioned, is licensed under the MIT license.

The content of this blog, unless otherwise mentioned, is released under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Valid CSSValid RSSValid Atom 1.0