Andrzej's C++ blog
Guidelines and thoughts about C++
- Posts
- 146 from 1 Apr 2011 to 3 Dec 2025
- Posting
- now and then (3 in the last year)
- Kind
- personal blog
- Feed
- https://akrzemi1.wordpress.com/feed/
2025 4
2024 1
2023 2
2022 3
2021 2
2020 9
2019 5
2018 8
2017 12
2016 12
2015 16
- Overload resolution
- More than you need
- Declaring the move constructor
- Special member functions
- Can you see the bug?
- code::dive — call for papers
- Efficient optional values
- Set-up and tear-down
- Handling short codes — part II
- Handling short codes — part I
- A clever comment style
- String’s interface
- Bug of the week
- A conditional copy constructor
- Desired compile-time failures
- Defensive programming
2014 19
- Using assertions
- A gotcha with ptr_vector
- A gotcha with Optional
- Boost Library Incubator
- Designing a generic library
- Destructors — 2 use cases
- On operator<
- Inadvertent conversions
- Inline functions
- Clever overloading
- Using variadic macros
- Ref-qualifiers
- Dangerous int-to-string conversions
- noexcept — what for?
- Common optimizations
- String’s length
- Find the bug — comments
- Find the bug
- Type erasure — Part IV
2013 15
- Type erasure — Part III
- Type erasure — Part II
- Type erasure — Part I
- Too perfect forwarding
- Value-initialization with C++
- Date Algorithms
- noexcept destructors
- C++’s best feature
- “constexpr” function is not “const”
- Intuitive interface — Part I
- Empty list initialization
- Preconditions — Part IV
- Preconditions — Part III
- Preconditions — Part II
- Preconditions — Part I
2012 17
- Constexpr unions
- (Not) using std::thread
- User-defined literals — Part III
- User-defined literals — Part II
- Why make your classes final?
- User-defined literals — Part I
- Quality Matters
- Beware of magic values!
- Constant initialization
- Using PODs in C++11
- Gotchas of type inference
- Meta-functions in C++11
- “Resource” or “session”?
- Value semantics
- Move Constructor — updated
- Concept axioms — what for?
- Type inference for temporaries
2011 21
- Null-state — part II
- Null-state — part I
- Functions that do nothing
- Lvalues, rvalues and references
- Value-initialization with Boost
- Parsing floats
- Using std::terminate
- Who calls std::terminate?
- Destructors that throw
- Move constructor — Q&A
- Move Constructor
- Parsing xml with Boost
- Brace, brace!
- Unique and shared ownership
- Using noexcept — upated
- Using noexcept
- Parsing strings at compile-time — Part II
- Parsing strings at compile-time — Part I
- Compile-time computations
- Assertions
- Hi everyone!