November 2024
-
Shifting objects by less than
sizeof(T)
(2024-11-08) cppnow data-structures relocatability sg14 - Wolf (1906) on the false Quijotes of Avellaneda and Lesage (2024-11-02) help-wanted litclub transcription
October 2024
- Martin Gardner Scientific American Index; Rule 110 challenge (2024-10-21) celebration-of-mind cellular-automata
- What I’m reading lately: Greppability, Hebb’s dictum (2024-10-15) blog-roundup jokes sre
-
Why don’t compilers warn for
const T f()
? (2024-10-07) antipatterns c++-style compiler-diagnostics llvm
September 2024
- Playing A Serf’s Tale (1986) (2024-09-30) adventure playable-games
- The red right arm of Jove (2024-09-09) litclub old-shit poetry
- Nash equilibria in Ballmer’s binary-search interview game (2024-09-04) math puzzles
August 2024
- The little bird attacks the snake (2024-08-26) adventure etymology litclub old-shit
-
Boost.Interprocess, and
sg14::inplace_vector
(2024-08-23) allocators data-structures proposal relocatability sg14 stl-classic - Andries Brouwer on the OOM killer (2024-08-22) blog-roundup mailing-list-quotes sre
-
noexcept
affects libstdc++’sunordered_set
(2024-08-16) benchmarks data-structures exception-handling standard-library-trivia stl-classic triviality - Make things simpler than possible (2024-08-04) knuth old-shit poetry training
July 2024
- Counting distinct n-state DFAs (2024-07-27) math pretty-pictures
-
Why can’t I specialize
std::hash
inside my own namespace? (2024-07-15) cpplang-slack name-lookup proposal templates -
A
priority_tag
-like pattern for type-based metaprogramming (2024-07-07) metaprogramming templates type-traits -
std::try_cast
and(const&&)=delete
(2024-07-03) exception-handling library-design smart-pointers st-louis-2024
June 2024
- How my papers did at St Louis (2024-06-30) language-design proposal relocatability st-louis-2024 stl-classic triviality wg21
-
How the STL uses
explicit
(2024-06-25) constructors initialization library-design st-louis-2024 standard-library-trivia - Because Internet (2019) (2024-06-19) jokes linguistics litclub memes typography
- Who uses P2786 and P1144 for trivial relocation? (2024-06-15) proposal relocatability st-louis-2024 triviality
- Tangent circles of integer radius (2024-06-10) help-wanted math pretty-pictures puzzles
May 2024
- Topsys & Turvys (1893) (2024-05-23) old-shit pretty-pictures transcription web
- Types that falsely advertise P2786 trivial relocatability (2024-05-18) proposal relocatability st-louis-2024 triviality
- Types that falsely advertise trivial copyability (2024-05-15) implementation-divergence metaprogramming pitfalls proposal triviality type-traits
- Using Wikipedia’s API to find inconsistently hyphenated French names (2024-05-04) sre web
April 2024
- Reverse the List of Integers (2024-04-22) math puzzles
- A case study in not-quite-move-semantic library design (2024-04-18) classical-polymorphism library-design move-semantics
- Name lookup in multiple base classes (2024-04-17) c++-learner-track classical-polymorphism customization-points name-lookup
- Help wanted: Compile your codebase with P1144 and P2786 relocatability! (2024-04-10) help-wanted llvm proposal relocatability wg21
- The Mummy! (1827) (2024-04-08) litclub old-shit science
- Johnson’s definition of network (2024-04-05) linguistics litclub old-shit poetry
- Trivial, but not trivially default constructible (2024-04-02) cppcon language-design value-semantics
March 2024
- Ed Catmur’s Triliteral esolang (2024-03-31) esolang typography
- Some St. Patrick’s Day math (2024-03-17) celebration-of-mind clement-wood litclub math
- The 2024 Google Summer of Code idea lists are out (2024-03-05) conferences relocatability
- The algebraic structure of Infinite Craft (2024-03-03) knuth math web
February 2024
- Sorting at compile time, part 2 (2024-02-20) benchmarks compile-time-performance constexpr metaprogramming ranges
-
Sorting
integer_sequence
at compile time (2024-02-19) benchmarks compile-time-performance constexpr metaprogramming ranges -
Feature requests for the
Auto
macro (2024-02-14) exception-handling lambdas preprocessor - Infinite Craft (2024-02-08) hyperrogue playable-games web
- A note on feature-test macros (2024-02-06) feature-test-macros wg21
January 2024
-
Fun with “deducing
this
” lambdas (2024-01-23) cpplang-slack lambdas name-lookup - Pentoprimality (2024-01-15) math pretty-pictures puzzles
- What I’m reading lately: Africa, liberty, economics (2024-01-12) blog-roundup litclub morality science
-
Should assignment affect
is_trivially_relocatable
? (2024-01-02) proposal relocatability
December 2023
- Acorns and honey in the Golden Age (2023-12-26) food litclub old-shit
- Holiday puzzle: Anagrams modulo two (2023-12-24) celebration-of-mind puzzles
- Two kinds of function template parameters (2023-12-17) c++-learner-track c++-style sd-8-adjacent templates
- Moving via relocate-and-construct (2023-12-06) relocatability sufficiently-smart-compiler
November 2023
- A Dissertation Upon Roast Pig (1822) (2023-11-20) food litclub old-shit poetry
- How to type-pun via catching by non-const reference (2023-11-17) exception-handling implementation-divergence
- How my papers did at Kona (2023-11-12) attributes exception-handling implicit-move initializer-list kona-2023 lambdas library-design proposal relocatability stl-classic value-semantics wg21
- Guard nouns or guard verbs? (2023-11-11) attributes concurrency exception-handling kona-2023 library-design mailing-list-quotes proposal
- Map of NYC Michelin stars, 2023 (2023-11-08) food web
October 2023
-
My muscle-memory
git
toolbox (2023-10-30) blog-roundup git training - Happy 109th birthday, Martin Gardner! (2023-10-21) celebration-of-mind math puzzles
-
Quuxplusone/SG14
now hasinplace_vector
(2023-10-20) allocators library-design proposal relocatability sg14 standard-library-trivia - Origins and purposes (2023-10-18) litclub morality old-shit
-
constexpr std::string
update (2023-10-13) constexpr cpplang-slack library-design llvm -
How
boost::is_base_of
matches private and/or ambiguous bases (2023-10-06) classical-polymorphism metaprogramming - R.I.P. The OFloinn (2023-10-03) blog-roundup morality old-shit
- A neat technique for custom output iterators (2023-10-01) pearls stl-classic today-i-learned
September 2023
- Succession joke chyrons (2023-09-26) jokes television transcription us-politics
- Blog roundup: U+, Bloomfield, Stuka, Gino (2023-09-16) blog-roundup science today-i-learned typography
-
Just how
constexpr
is C++20’sstd::string
? (2023-09-08) c++-learner-track constexpr cpplang-slack library-design
August 2023
- Some C++20 ranges aren’t const-iterable (2023-08-13) library-design pitfalls ranges
- The style guide must say how to do what you mustn’t do (2023-08-11) c++-style compiler-diagnostics language-design library-design
- Fun with quadratic pack-expansions (2023-08-05) compile-time-performance constexpr cpplang-slack lambdas metaprogramming variadic-templates
July 2023
- Kotlin AssertJ cheat sheet (2023-07-28) how-to kotlin
-
Socrates on why there’s no
erase_if
forspan
(2023-07-16) library-design parameter-only-types - How “static storage for initializers” did at Varna (2023-07-05) implementation-divergence initializer-list llvm varna-2023
- What I’m reading lately: Dogs and Wolfe (2023-07-01) blog-roundup clement-wood litclub paradigm-shift
June 2023
- Space-filling polycube snakes (2023-06-27) celebration-of-mind math puzzles
- Polymorphic types aren’t trivially relocatable (2023-06-24) classical-polymorphism proposal relocatability varna-2023
- PSA: Value-initialization is not merely default-construction (2023-06-22) initialization language-design metaprogramming proposal varna-2023
- A small C++ meme dump (2023-06-17) c++-style concepts cpplang-slack memes move-semantics relocatability stl-classic varna-2023
- Themistocles and Alexander (2023-06-07) jokes litclub old-shit
-
Make
operator<=>
ignore a data member (2023-06-05) c++-style operator-spaceship paradigm-shift pearls - P1144 PMR koans (2023-06-03) allocators implementation-divergence relocatability value-semantics varna-2023 wg21
- A not-so-quick introduction to the C++ allocator model (2023-06-02) allocators relocatability value-semantics
May 2023
-
Don’t
forward
things that aren’t forwarding references (2023-05-27) c++-style -
A deduction guide for
Foo(Ts..., Ts...)
(2023-05-26) class-template-argument-deduction cpplang-slack implementation-divergence metaprogramming variadic-templates - Triangular Tetris (2023-05-19) celebration-of-mind playable-games web
-
Implementation divergence with a moved-from
set
comparator (2023-05-10) flat-containers implementation-divergence standard-library-trivia stl-classic wg21 -
Polymorphic types and
-Wdeprecated-copy-dtor
(2023-05-05) c++-style classical-polymorphism compiler-diagnostics cpplang-slack llvm
April 2023
-
Fun with
flat_map
’s non-explicit constructors (2023-04-28) constructors cpplang-slack flat-containers initialization library-design standard-library-trivia -
std::format
from scratch, part 3 (2023-04-23) how-to library-design std-format -
std::format
from scratch, part 2 (2023-04-22) how-to library-design std-format -
std::format
from scratch, part 1 (2023-04-21) how-to library-design std-format - Trivial functions can still be non-nothrow (modulo compiler bugs) (2023-04-17) exception-handling implementation-divergence
-
Most C++ constructors should be
explicit
(2023-04-08) c++-style constructors initialization initializer-list library-design
March 2023
- Escheresque parquet deformations of an aperiodic monotile (2023-03-30) celebration-of-mind math pretty-pictures web
- Mathematical golf (2023-03-23) board-games clement-wood math old-shit puzzles
- The epitaph of Adrian’s horse (2023-03-22) blog-roundup jokes litclub old-shit poetry weird-fiction
-
Iterating and inverting a const
views::filter
(2023-03-13) cpplang-slack pearls ranges -
Should the compiler sometimes reject a
[[trivially_relocatable]]
warrant? (2023-03-10) language-design library-design relocatability wg21 - Computing OEIS A360447 (2023-03-05) data-structures math
-
Update on my trivial
swap
prize offer (2023-03-04) llvm relocatability - STL algorithms for trivial relocation (2023-03-03) library-design relocatability stl-classic wg21
-
Making
priority_queue
andflat_set
work with move-only types (2023-03-01) flat-containers library-design llvm move-semantics relocatability stl-classic
February 2023
-
Trivial relocation,
std::swap
, and a $2000 prize (2023-02-24) help-wanted relocatability value-semantics wg21 - -Ought words (2023-02-20) etymology litclub old-shit poetry today-i-learned
- How my papers did at Issaquah (2023-02-17) implementation-divergence initializer-list llvm relocatability sg14 wg21
- The jargon treadmill (2023-02-04) c++-style etymology linguistics rant
January 2023
- Simple C++20 input and output iterators (2023-01-27) pearls stl-classic type-erasure
- Always read the first error message first (2023-01-21) c++-learner-track compiler-diagnostics
-
P1967
#embed
and D2752 “Static storage forinitializer_list
” are now on Compiler Explorer (2023-01-13) initializer-list llvm parameter-only-types preprocessor proposal wg21 - Happy birthday, Donald Knuth! and lamp-trolls (2023-01-10) coroutines knuth
- In search of Adventure ]I[ (1981-ish) (2023-01-09) digital-antiquaria help-wanted
- Pangrams and Scrabblegrams (2023-01-02) celebration-of-mind clement-wood help-wanted old-shit puzzles typography
- Milner’s lamp (2023-01-01) math old-shit puzzles
December 2022
- Hash-colliding string literals on MSVC (2022-12-31) implementation-divergence msvc
-
Benchmarking Clang’s
-fbuiltin-std-forward
(2022-12-24) benchmarks compile-time-performance cpplang-slack library-design llvm - API design advice from Anakin and Obi-Wan (2022-12-17) cpplang-slack library-design memes
- Copy semantics, per Plato’s Sophist (2022-12-15) c++-learner-track old-shit value-semantics
-
Replacing
std::lock_guard
with a factory function (2022-12-14) class-template-argument-deduction concurrency exception-handling implementation-divergence library-design llvm templates war-stories - Lego polycube snakes (2022-12-11) lego math pretty-pictures puzzles
- Polyomino strips, snakes, and ouroboroi (2022-12-08) math pretty-pictures puzzles
- Techniques for post-facto multiple inheritance (2022-12-01) classical-polymorphism library-design templates type-erasure
November 2022
- Polycube snakes and ouroboroi (2022-11-18) celebration-of-mind coroutines math puzzles
- The game of Zendo (2022-11-13) board-games how-to
- What I’m reading lately: tunnel edition (2022-11-12) blog-roundup jokes linguistics litclub math old-shit us-politics
-
Refactoring with
=delete
(2022-11-11) c++-learner-track overload-resolution war-stories - Bit-vector manipulations in standard C++ (2022-11-05) benchmarks implementation-divergence llvm standard-library-trivia stl-classic
- Style Invitational Week 1509: Two-Reelers (2022-11-03) jokes
October 2022
- Map of NYC Michelin stars, 2022 (2022-10-25) food web
- Issachar Styrke’s Alcestis Burlesqued (2022-10-24) alcestis gilbert-and-sullivan litclub old-shit poetry
- Notes on Sonia Greene’s Alcestis (2022-10-23) alcestis gilbert-and-sullivan litclub old-shit weird-fiction
- Sonia Greene’s Alcestis (2022-10-22) alcestis litclub old-shit transcription weird-fiction
- Prefer core-language features over library facilities (2022-10-16) c++-learner-track c++-style concepts coroutines rant
-
Thoughts on
-Wctad-maybe-unsupported
(2022-10-07) class-template-argument-deduction compiler-diagnostics llvm proposal rant
September 2022
-
A “pick two” triangle for
std::vector
(2022-09-30) exception-handling move-semantics stl-classic - What I’m reading lately: Borges, Jung, Hitchcock (2022-09-24) blog-roundup litclub movies
- The game of Lielow (2022-09-02) board-games playable-games puzzles web
August 2022
- What is the “vector pessimization”? (2022-08-26) c++-learner-track exception-handling move-semantics pitfalls stl-classic
- Playing The Search for Almazar (1981) (2022-08-13) adventure digital-antiquaria
-
Beware CTAD on
reverse_iterator
(2022-08-02) class-template-argument-deduction pitfalls stl-classic war-stories
July 2022
-
Type-erased
InplaceUniquePrintable
benefits fromnoexcept
(2022-07-30) exception-handling llvm pearls relocatability type-erasure - What I’m reading lately: Scholar’s Stage, Popper, Grug (2022-07-26) blog-roundup litclub science us-politics
- Google Timer is dead; long live BigTimer (2022-07-25) conferences rant web
- Fun with lifetime-extended results of assignment (2022-07-09) implementation-divergence lifetime-extension
-
An example where
inline constexpr
makes a difference (2022-07-08) constexpr cpplang-slack implementation-divergence llvm standard-library-trivia
June 2022
-
void
versus[[noreturn]]
(2022-06-29) c++-learner-track cpplang-slack litclub -
unordered_multiset
’s API affects its big-O (2022-06-23) benchmarks data-structures library-design standard-library-trivia stl-classic - Three Men Discuss Relativity (1926) (2022-06-17) litclub old-shit paradigm-shift science
- C++20’s parenthesized aggregate initialization has some downsides (2022-06-03) c++-learner-track constructors cpplang-slack initialization pitfalls
May 2022
- Blessed nuns fret not at their narrow rooms (2022-05-23) litclub music old-shit poetry
- Heavy Planet (2022-05-22) litclub math this-should-exist
-
std::relocate
’s implementation is cute (2022-05-18) pearls relocatability - Two more musings on Clang diagnostics (2022-05-05) argument-dependent-lookup compiler-diagnostics hidden-friend-idiom llvm templates
April 2022
- To enable ADL, add a using-declaration (2022-04-30) argument-dependent-lookup c++-style customization-points library-design name-lookup paradigm-shift
- The humble potato (2022-04-25) food litclub old-shit
- PSA: ADL requires that unqualified lookup has found a function (2022-04-14) argument-dependent-lookup cpplang-slack customization-points library-design name-lookup pitfalls standard-library-trivia
March 2022
- Larson wine limericks (2022-03-30) jokes
- Kafka, math jokes, triangle dissection (2022-03-24) celebration-of-mind jokes litclub math
-
TIL:
nullopt_t
is not equality-comparable, butmonostate
is (2022-03-07) cpplang-slack ranges standard-library-trivia today-i-learned value-semantics - History of non-standard-layout class layouts (2022-03-04) access-control wg21-folkloristics
-
What if
vector<T>::iterator
were justT*
? (2022-03-03) argument-dependent-lookup implementation-divergence library-design llvm stl-classic
February 2022
- Evirdle (2022-02-27) playable-games web wordle
- Birdle (2022-02-20) jokes music playable-games web wordle
- “Universal reference” or “forwarding reference”? (2022-02-02) c++-learner-track cpplang-slack holy-wars memes
January 2022
- A minimally interesting typo-bug (2022-01-29) compiler-diagnostics
-
volatile
means it really happens (2022-01-28) antipatterns c++-learner-track concurrency slogans -
const
all the things? (2022-01-23) antipatterns c++-style holy-wars pitfalls - The economist’s $100 bill, and the virtue of consistency (2022-01-20) jokes slogans sre
- The best engineering interview question I’ve ever gotten, Part 2 (2022-01-07) sre war-stories
- The best engineering interview question I’ve ever gotten, Part 1 (2022-01-06) sre war-stories
- Test an expression for constexpr-friendliness (2022-01-04) constexpr cpplang-slack implementation-divergence metaprogramming
December 2021
- Completeness preconditions considered harmful (2021-12-27) concepts cpplang-slack implementation-divergence library-design metaprogramming pitfalls ranges
- I sweded the LLVM Bugzilla migration (2021-12-11) llvm sre web
-
A note on
namespace __cpo
(2021-12-07) hidden-friend-idiom library-design llvm ranges war-stories -
view_interface
types are boolean-testable (2021-12-06) c++-style ranges today-i-learned
November 2021
- Image rotation by three affine transformations (2021-11-26) image-processing math pretty-pictures web
-
Underseeding
mt19937
; introducingxoshiro256ss
(2021-11-23) antipatterns pearls random-numbers -
Is
path
convertible tostring_view
?: a war story (2021-11-21) concepts llvm metaprogramming overload-resolution pitfalls war-stories -
A footnote on “Three reasons to pass
std::string_view
by value” (2021-11-19) library-design parameter-only-types - Cryptic poems, Mahabharata, means of production (2021-11-18) blog-roundup cppcon morality movies poetry puzzles us-politics
- Image rotation by shifting pixels (2021-11-13) image-processing pretty-pictures web
- The game of “Contact” (2021-11-12) board-games how-to
-
Three reasons to pass
std::string_view
by value (2021-11-09) c++-learner-track c++-style library-design parameter-only-types - The Fourth Dimension and the Bible (1922) (2021-11-05) litclub math old-shit paradigm-shift web
October 2021
- Overload arrangement puzzles (2021-10-29) cppcon overload-resolution puzzles
- C++ Pub Quiz at CppCon 2021, Game Two (2021-10-29) conferences cppcon
- C++ Pub Quiz at CppCon 2021, Game One (2021-10-28) conferences cppcon
-
Don’t reopen
namespace std
(2021-10-27) antipatterns c++-style cppcon sd-8-adjacent slogans templates -
operator<=>
doesn’t obsolete the hidden friend idiom (2021-10-22) argument-dependent-lookup c++-style hidden-friend-idiom operator-spaceship stl-classic - Rolling 2d6 with playing cards (2021-10-21) celebration-of-mind etymology math puzzles today-i-learned
- Back to Basics at CppCon 2021 (2021-10-21) conferences cppcon
- Book Review: Fedor Pikus’ The Art of Writing Efficient Programs (2021-10-19) c++-style litclub
-
What
=delete
means (2021-10-17) argument-dependent-lookup c++-learner-track library-design - Lineup for next week’s Celebration of Mind (2021-10-16) celebration-of-mind conferences math
- Evasive Maneuvers (1994) (2021-10-08) digital-antiquaria playable-games web
-
A macro for migrating to
static operator()
(2021-10-07) pearls preprocessor proposal -
std::span
should have a converting constructor frominitializer_list
(2021-10-03) initializer-list llvm parameter-only-types proposal wg21
September 2021
- The peasants are revolting (2021-09-30) jokes litclub math
- A class without a copy constructor (2021-09-17) concepts cpplang-slack implementation-divergence implicit-move
-
A compile-time benchmark for
enable_if
andrequires
, part 2 (2021-09-14) benchmarks compile-time-performance concepts llvm metaprogramming -
Bit patterns of
float
(2021-09-05) how-to math operator-spaceship pretty-pictures -
A compile-time benchmark for
enable_if
andrequires
(2021-09-04) benchmarks compile-time-performance concepts llvm metaprogramming
August 2021
- Two old crosswords of mine (2021-08-24) knuth puzzles typography
- Two counterintuitive results (2021-08-12) math puzzles science
- Field-testing P2266 “Simpler Implicit Move” (2021-08-07) implicit-move llvm proposal
-
Don’t explicitly instantiate
std
templates (2021-08-06) library-design pitfalls sd-8-adjacent
July 2021
-
Perfect forwarding call wrappers need
=delete
(2021-07-30) metaprogramming pitfalls - Buddhabrot (2021-07-27) math pretty-pictures
- Cratylus on choosing good names (2021-07-15) cppnow etymology library-design litclub naming old-shit
-
An
iterator
IS-NOT-Aconst_iterator
(2021-07-14) antipatterns implementation-divergence library-design stl-classic -
priority_tag
for ad-hoc tag dispatch (2021-07-09) metaprogramming pearls templates
June 2021
- Implementation divergence on swapping bools within vectors (2021-06-27) argument-dependent-lookup hidden-friend-idiom implementation-divergence stl-classic templates
-
Another
requires
-clause syntax pitfall (2021-06-09) compiler-diagnostics concepts cpplang-slack implementation-divergence pitfalls - Tag dispatch versus concept overloading (2021-06-07) concepts metaprogramming templates
- A Night of Serious Drinking and operationalism (2021-06-04) concepts litclub science
May 2021
- C++ On Sea 2021 schedule announced (2021-05-27) conferences cpp-on-sea training
- Overly interoperable libraries, part 3 (2021-05-26) argument-dependent-lookup cpplang-slack library-design metaprogramming
- The Fishspear priority queue algorithm (2021-05-23) data-structures knuth stl-classic
- Overly interoperable libraries, part 2 (2021-05-22) cpplang-slack implementation-divergence metaprogramming
- A metaprogramming puzzle: Overly interoperable libraries (2021-05-19) cpplang-slack metaprogramming
- “Modern STL Programming” at C++ On Sea 2021 (2021-05-17) conferences cpp-on-sea stl-classic training
- Play The Search for Almazar online (2021-05-16) adventure digital-antiquaria playable-games web
- Nifty notebooks, and Almazar (2021-05-13) adventure castlequest digital-antiquaria
- An interview with Arthur O’Dwyer (2021-05-11) adventure castlequest digital-antiquaria help-wanted
- Removing an empty base class can break ABI (2021-05-07) cppnow llvm standard-library-trivia
- Semantically ordered arguments should be lexically ordered too (2021-05-05) cppnow library-design rant standard-library-trivia
-
P2266’s interaction with
decltype(auto)
(2021-05-04) cppnow implicit-move proposal
April 2021
-
Optimizing
string::append
is harder than it looks (2021-04-17) exception-handling llvm rant standard-library-trivia war-stories - Lineup for next week’s Celebration of Mind (2021-04-15) celebration-of-mind conferences math
- Antisocial Homeworlds, and a solitaire challenge (2021-04-04) board-games homeworlds puzzles
-
static constexpr unsigned long
is C++’s “lovely little old French whittling knife” (2021-04-03) c++-learner-track c++-style linguistics
March 2021
- Observations on Castlequest’s code (2021-03-21) adventure castlequest digital-antiquaria
- Playing Castlequest (1980), Part 2 (2021-03-20) castlequest digital-antiquaria
- Playing Castlequest (1980), Part 1 (2021-03-19) adventure castlequest digital-antiquaria
-
Does
throw x
implicit-move? Let’s ask SFINAE (2021-03-18) implementation-divergence implicit-move -
C’s removal of
gets
could have been done better (2021-03-12) compiler-diagnostics war-stories - Making Castlequest compilable (2021-03-11) castlequest digital-antiquaria
- Castlequest exhumed! (2021-03-09) adventure castlequest digital-antiquaria
- Escape analysis hates copy elision (2021-03-07) copy-elision cpplang-slack implicit-move pitfalls proposal
-
Don’t blindly prefer
emplace_back
topush_back
(2021-03-03) benchmarks c++-learner-track compile-time-performance move-semantics pitfalls
February 2021
- Adventure 448 (SWEN0448): All the easter eggs (2021-02-27) adventure digital-antiquaria
- When your loop unroller works harder than your infinite loop detector (2021-02-26) cpplang-slack memes
- Homeworlds: Analysis of an Opening Gambit (2021-02-21) board-games homeworlds
-
A hole in Clang’s
-Wsuggest-override
(2021-02-19) classical-polymorphism compiler-diagnostics llvm - When can the C++ compiler devirtualize a call? (2021-02-15) classical-polymorphism implementation-divergence sufficiently-smart-compiler
- Blog roundup: Auftragstaktik, files, lesser-known cryptocurrencies (2021-02-13) blog-roundup concepts etymology jokes templates
-
decltype
of a non-static member (2021-02-10) concepts implementation-divergence name-lookup - What are X-macros? (2021-02-01) adventure c++-learner-track hyperrogue preprocessor
January 2021
- Fun with conversion-operator name lookup (2021-01-13) implementation-divergence name-lookup
- It’s not always obvious when tail-call optimization is allowed (2021-01-09) c++-learner-track implementation-divergence
December 2020
- Thoughts on “Does GPT-2 Know Your Phone Number?” (2020-12-27) blog-roundup morality science
- The Box of Delights (2020-12-27) blog-roundup celebration-of-mind litclub weird-fiction
- A better 404 polyglot (2020-12-23) esolang
- How do C++ using-directives work? (2020-12-21) argument-dependent-lookup c++-learner-track name-lookup namespaces
-
The STL is more than
std::accumulate
(2020-12-14) cppcon memes ranges rant stl-classic - Bubblesort, rocksort, and cocktail-shaker sort (2020-12-13) knuth math
-
Tips re
operator()
(2020-12-12) c++-style lambdas metaprogramming rant - “Flash of unstyled base class” (2020-12-09) classical-polymorphism concurrency pitfalls war-stories
- An example of the Barton–Nackman trick (2020-12-09) argument-dependent-lookup cpplang-slack hidden-friend-idiom stl-classic templates
-
Loop variable may not be declared
static
(2020-12-03) cpplang-slack memes thread-local-storage - How to use a private member from outside the class (2020-12-03) access-control metaprogramming templates
- How different compilers deal with provably unused entities (2020-12-02) access-control compiler-diagnostics implementation-divergence llvm proposal sufficiently-smart-compiler
November 2020
- Arrays aren’t pointers (2020-11-25) c++-learner-track memes typography
-
Type-erased
UniquePrintable
andPrintableRef
(2020-11-24) cpplang-slack pearls type-erasure - Flavors of Base64 encoding (2020-11-17) how-to kotlin web
- Lifetime extension applies to whole objects (2020-11-16) implementation-divergence lifetime-extension parameter-only-types
- Some thoughts on U.S. politics (2020-11-05) us-politics
- Colonel Blimp and An Inspector Calls (2020-11-01) litclub morality movies old-shit
-
SFINAE and
E1.E2
(2020-11-01) concepts implementation-divergence templates
October 2020
- Homeworlds Puzzle: Mercury in Retrograde (2020-10-28) board-games homeworlds puzzles
-
while (auto x=y; z)
(2020-10-28) cpplang-slack language-design - Homeworlds Puzzle: Burnt Umber (2020-10-25) board-games homeworlds puzzles
-
std::once_flag
is a glass hill (2020-10-23) concurrency cppcon litclub standard-library-trivia - Thoughts on OEIS A125508 (2020-10-18) board-games celebration-of-mind math puzzles web
- Scott Kim’s rotational ambigrams for the Celebration of Mind (2020-10-18) celebration-of-mind math pretty-pictures typography web
- Site reliability engineering at Ardeer; eyewitnesses to Hiroshima (2020-10-17) blog-roundup old-shit sre
- Conway’s Soldiers (2020-10-17) blog-roundup puzzles
- A case study in implementation inheritance (2020-10-15) classical-polymorphism war-stories
- Grab bag (2020-10-12) blog-roundup cpplang-slack us-politics
- Left-folding and right-folding an arbitrary callable (2020-10-12) cpplang-slack metaprogramming variadic-templates
- A very short war story on too much overloading (2020-10-11) c++-style war-stories
- Inheritance is for sharing an interface (and so is overloading) (2020-10-09) c++-style classical-polymorphism metaprogramming templates
- Solo-player rules for Colossal Cave: The Board Game (2020-10-02) adventure board-games
September 2020
-
Classically polymorphic
visit
replaces some uses ofdynamic_cast
(2020-09-29) classical-polymorphism metaprogramming templates variadic-templates war-stories - September blog roundup (2020-09-26) blog-roundup
-
Why do I get a linker error with
static const
andvalue_or
? (2020-09-19) c++-learner-track cppcon pitfalls war-stories - C++ Pub Quiz at CppCon 2020, Game Two (2020-09-18) conferences cppcon
- C++ Pub Quiz at CppCon 2020, Game One (2020-09-16) conferences cppcon
- “Classic STL” at CppCon 2020 (2020-09-12) conferences cppcon stl-classic training
-
For what inputs is
std::sort
unstable? (2020-09-11) standard-library-trivia - Two musings on the design of compiler warnings (2020-09-02) c++-style compiler-diagnostics language-design rant
August 2020
-
-Wrange-loop-bind-reference
andauto&&
(2020-08-26) c++-style compiler-diagnostics lifetime-extension llvm - Phantoms vs Phantoms (Geister) (2020-08-22) board-games playable-games web
- MathJax v3 in Jekyll (2020-08-19) how-to knuth web
- What I’m reading lately: New York, The Atlantic, The Three-Body Problem (2020-08-15) litclub morality us-politics
- Back to Basics at CppCon 2020 (2020-08-11) conferences cppcon
- Concepts can’t do quantifiers (2020-08-10) concepts
- The “array size constant” antipattern (2020-08-06) antipatterns c++-style
- What I’m reading lately: The Ring of Words (2020-08-05) etymology litclub old-shit today-i-learned
July 2020
- An obvious guideline on function-call style (2020-07-23) c++-style
- A Parody on Iolanthe (2020-07-20) gilbert-and-sullivan litclub old-shit today-i-learned
-
What is the
std::swap
two-step? (2020-07-11) argument-dependent-lookup c++-learner-track library-design wg21-folkloristics - How to erase from an STL container (2020-07-08) c++-learner-track library-design rant standard-library-trivia stl-classic
- What I’m reading lately: ACOUP, Kitbashed, the Atlantic (2020-07-06) blog-roundup litclub morality movies us-politics
June 2020
- Decompiling GOET0580 (2020-06-30) adventure digital-antiquaria esolang
- The Star Wars cellular automaton (2020-06-29) cellular-automata esolang pretty-pictures web
- Homeworlds Puzzle: The Prestige (2020-06-16) board-games homeworlds puzzles
- Lovecraft on Hitler (2020-06-09) litclub us-politics weird-fiction
May 2020
- Homeworlds Puzzle: War Games (2020-05-30) board-games homeworlds puzzles
- Homeworlds Puzzle: Mini Doomsday Machine (2020-05-29) board-games homeworlds puzzles web
- The Case of Willie the Wisp (2020-05-29) jokes litclub
- The “OO” Antipattern (2020-05-28) antipatterns blog-roundup c++-learner-track c++-style slogans war-stories
-
Folding over
operator=
(2020-05-07) blog-roundup order-of-evaluation variadic-templates - C++Now 2020: A C++ Magic Trick (2020-05-04) cppnow parameter-only-types web
- Connect Fifteen (2020-05-03) board-games
April 2020
- Default function arguments are the devil (2020-04-18) c++-learner-track c++-style language-design library-design rant slogans
-
Precedence of a proposed
|>
operator (2020-04-10) coroutines language-design proposal ranges wg21 - Hello Muddah, Hello Faddah (Coronavirus Version) (2020-04-08) jokes memes music
- What I’m reading lately: The Compleat Boucher (2020-04-05) litclub morality old-shit sre
-
A seasonal followup to “When is
*x
also&x
?” (2020-04-01) rant
March 2020
-
When is
*x
also&x
? (2020-03-31) c++-learner-track lambdas slogans - Discrete Peaceful Encampments, Bernie Sanders version (2020-03-21) litclub math morality puzzles us-politics
-
c_str
-correctness (2020-03-20) c++-style parameter-only-types - Ways C++ prevents you from doing X (2020-03-17) access-control c++-learner-track pitfalls
- The Tau Manifesto (2020-03-14) blog-roundup math paradigm-shift
-
Contra
char *argv[]
(2020-03-12) mailing-list-quotes pitfalls rant - The Design of Everyday Things (2020-03-07) cppcon litclub sre
- Field-testing “Down with lifetime extension!” (2020-03-04) copy-elision initializer-list lifetime-extension llvm proposal
- Thoughts on “The C++ Rvalue Lifetime Disaster” (2020-03-04) copy-elision move-semantics paradigm-shift
February 2020
- The abstraction penalty for wide integer math on x86-64 (2020-02-13) benchmarks llvm sufficiently-smart-compiler
- Two approaches to secret sharing: math vs. blockchain (2020-02-12) esolang math pearls
-
How to replace
__FILE__
withsource_location
in a logging macro (2020-02-12) c++-style pearls preprocessor - “Myths about /dev/urandom” and “What Is JavaScript Made Of?” (2020-02-09) blog-roundup random-numbers
- A bug in Adventure’s endgame (2020-02-06) adventure digital-antiquaria knuth war-stories
- SFINAE special members or support incomplete types: Pick at most one (2020-02-05) concepts implementation-divergence library-design metaprogramming standard-library-trivia templates
January 2020
- OpenSSL client and server from scratch, part 5 (2020-01-28) library-design networking web
- OpenSSL client and server from scratch, part 4 (2020-01-27) library-design networking
- OpenSSL client and server from scratch, part 3 (2020-01-26) library-design networking
- OpenSSL client and server from scratch, part 2 (2020-01-25) library-design networking
- OpenSSL client and server from scratch, part 1 (2020-01-24) library-design networking
-
Hidden
reinterpret_cast
s (2020-01-22) cpplang-slack pitfalls templates - A quirk of qualified member lookup (2020-01-11) cpplang-slack implementation-divergence language-design name-lookup templates today-i-learned
- Canonicalizing {0,1}-matrices with Nauty (2020-01-11) math
- Wolves and Sheep, with tables (2020-01-10) math puzzles
- Namespaces are for preventing name collisions (2020-01-07) c++-learner-track c++-style modules slogans
- The Story of Mel (2020-01-05) esolang litclub poetry war-stories
December 2019
- Comparative TMP #1: MPL, Mp11, Kvasir, Hana, Metal (2019-12-28) metaprogramming templates
-
Holiday fun with
template<class>
andtemplate<typename>
(2019-12-27) class-template-argument-deduction implementation-divergence rant templates - De Canibus Britannicis (2019-12-17) blog-roundup etymology litclub memes old-shit
-
Implementation divergence with
const int i;
andmutable
(2019-12-04) implementation-divergence - Setup and teardown routines in non-flat class hierarchies (2019-12-03) classical-polymorphism cpplang-slack rant
November 2019
- Sorrows and So You Want to Be a Wizard (2019-11-30) blog-roundup litclub
- Slack’s new WYSIWYG input box is really terrible (2019-11-20) cpplang-slack rant web
- Throwback Saturday: Three variants on 2048 (2019-11-16) playable-games web
- How to build LLVM from source, monorepo version (2019-11-09) how-to llvm
- Hello World with C++2a modules (2019-11-07) how-to llvm modules
October 2019
-
PSA:
<random>
’s distributions are stateful (2019-10-22) pitfalls random-numbers rant standard-library-trivia - Discrete Peaceful Encampments, with tables (2019-10-18) math puzzles
- CppCon 2019 talks are up (2019-10-18) cppcon slogans
- An unexpected brush with “strong typedefs” (2019-10-10) library-design parameter-only-types standard-library-trivia
- Why doesn’t C++ have networking support? (2019-10-09) concurrency library-design wg21
September 2019
- What is the virtual table table? (2019-09-30) classical-polymorphism constructors
- ADL can interfere even with uglified names (2019-09-26) argument-dependent-lookup pitfalls standard-library-trivia
- Thoughts on Herb Sutter’s CppCon keynote (2019-09-24) cppcon exception-handling
-
A trivially copyable ticket for a
unique_ptr
(2019-09-21) cppcon parameter-only-types relocatability smart-pointers - C++ Pub Quiz at CppCon 2019 (2019-09-21) conferences cppcon
- Seen on the CppCon whiteboard (2019-09-18) concepts conferences cppcon cpplang-slack
- Back to Basics at CppCon 2019 (2019-09-12) conferences cppcon
-
Implementation divergence with
friend
(2019-09-10) access-control classical-polymorphism implementation-divergence metaprogramming
August 2019
- Transcription of All Of Them Witches (2019-08-26) litclub movies old-shit transcription
- Church booleans in Befunge-98 (2019-08-24) esolang
- Self-assignment and the Rule of Zero (2019-08-20) move-semantics pitfalls smart-pointers
- The post-Cologne mailing is out (2019-08-18) allocators copy-elision coroutines rant wg21
- Dragonflight, and running DosBox in the browser (2019-08-11) digital-antiquaria playable-games web
-
Mangling dependent parameter types, or, what happened to
std::default_order
(2019-08-08) metaprogramming operator-spaceship pitfalls standard-library-trivia templates wg21-folkloristics - Confessions of a Justified Sinner (2019-08-06) gilbert-and-sullivan litclub morality old-shit
- A C++ acronym glossary (2019-08-02) c++-learner-track cpplang-slack wg21-folkloristics
- What is 8÷2(2+2)? (2019-08-01) math
July 2019
- A cellular automaton that makes beautiful little patterns (2019-07-27) cellular-automata digital-antiquaria esolang math pretty-pictures web
- Making floppy disk images under OS X (2019-07-26) digital-antiquaria how-to sre
- Prince Rupert’s Lego Cube (2019-07-23) lego math pretty-pictures science
- Concept definition-checking and its woes (2019-07-22) concepts
- Notes on Prince Rupert’s Problem (2019-07-22) math science today-i-learned
- What I’m reading lately (2019-07-19) blog-roundup litclub morality old-shit sre
- C++2a Coroutines and dangling references (2019-07-10) coroutines cpplang-slack parameter-only-types pitfalls
-
Conditional
explicit
is not the same thing as forwardingexplicit
(2019-07-05) metaprogramming templates - Enums break strong structural equality (2019-07-04) operator-spaceship templates wg21
-
Announcing
Quuxplusone/coro
, single-header C++2a example code (2019-07-03) concepts coroutines ranges web - P1616R0 and health insurance (2019-07-03) concepts implementation-divergence metaprogramming templates wg21
-
Contra P0339 “
polymorphic_allocator<>
as a vocabulary type” (2019-07-02) allocators class-template-argument-deduction library-design proposal rant wg21 - C++Now video tidbits (2019-07-02) blog-roundup cppnow
June 2019
- In support of P1485 “Better keywords for coroutines” (2019-06-26) coroutines proposal wg21
- My C++Now 2019 talks are captioned (2019-06-25) conferences cppnow relocatability
- “The STL From Scratch” is back! (2019-06-21) conferences cppcon
- “Exception Handling: A False Sense of Security” (2019-06-17) exception-handling wg21-folkloristics
- Dealing with Dragons (2019-06-09) adventure litclub
- “Understanding Real-World Concurrency Bugs in Go” (2019-06-06) concurrency rant science
May 2019
-
MapView
can be faster thanMapRef
(2019-05-27) benchmarks cppnow library-design parameter-only-types - A faster WG21 CWG issue browser (2019-05-22) web wg21
- MSVC can’t handle move-only exception types (2019-05-11) cppnow exception-handling move-semantics msvc pitfalls relocatability
-
On
function_ref
andstring_view
(2019-05-10) cppnow library-design parameter-only-types pitfalls type-erasure value-semantics - Befunge and Flobnar (2019-05-02) esolang
April 2019
- The wit of Macaulay, who wrote of Frederick II (2019-04-29) old-shit
- This one weird trick for customization by class template (partial) specialization (2019-04-26) concepts customization-points library-design metaprogramming
- What is ADL? (2019-04-26) argument-dependent-lookup c++-learner-track wg21-folkloristics
- Puzzle: Wolves and sheep (2019-04-17) math puzzles
- Fork considered harmful; paint splatters considered Perl (2019-04-13) blog-roundup paradigm-shift
-
How
hana::type<T>
“disables ADL” (2019-04-09) argument-dependent-lookup standard-library-trivia - ADL insanity (2019-04-08) argument-dependent-lookup
March 2019
- Booth bits; modern cuisine (2019-03-28) food old-shit poetry
-
The space of design choices for
std::function
(2019-03-27) library-design parameter-only-types type-erasure - Map of NYC Michelin stars, 2019 (2019-03-26) food web
- How my papers did at Kona (2019-03-20) kona-2019 operator-spaceship relocatability wg21
- README for my Peaceful Encampments visualizer (2019-03-18) math puzzles web
- What is Type Erasure? (2019-03-18) c++-learner-track library-design metaprogramming type-erasure
- RFM: Request for mashups (2019-03-17) music this-should-exist
- Value category is not lifetime (2019-03-11) c++-learner-track library-design metaprogramming parameter-only-types pitfalls slogans
- Four versions of Eric’s Famous Pythagorean Triples Code (2019-03-06) coroutines metaprogramming ranges sufficiently-smart-compiler
-
PSA:
shared_ptr<T>()
is notmake_shared<T>()
(2019-03-06) pitfalls smart-pointers war-stories
February 2019
- Thoughts on P1306 “Expansion Statements” (2019-02-28) kona-2019 language-design metaprogramming variadic-templates
-
Is
__int128
integral? A survey (2019-02-28) implementation-divergence standard-library-trivia - Fetishizing class invariants (2019-02-24) flat-containers kona-2019 library-design metaprogramming standard-library-trivia
- Not variadic expression templates (2019-02-23) kona-2019 metaprogramming pitfalls variadic-templates
-
P1144 case study: Moving a
fixed_capacity_vector
(2019-02-22) kona-2019 relocatability sg14 -
What library types are
trivially_relocatable
in practice? (2019-02-20) implementation-divergence kona-2019 relocatability - The Knightmare of Initialization in C++ (2019-02-18) board-games constructors initialization language-design rant
-
compressed_vector_traits
(2019-02-16) library-design metaprogramming -
Quick and unscientific
trivially_relocatable
benchmark (2019-02-12) benchmarks flat-containers kona-2019 relocatability - Packs of packs (2019-02-11) kona-2019 language-design metaprogramming variadic-templates
-
C++ idiom of the day:
arrow_proxy
(2019-02-06) flat-containers library-design metaprogramming pearls -
shared_ptr(&w, _1)
(2019-02-06) smart-pointers war-stories - On teaching Unicode in C++ (2019-02-03) rant typography
- Hot takes on P1452, P1470, P0408, and P0843 (2019-02-03) concepts kona-2019 library-design rant wg21
January 2019
-
Contra P0429R6
flat_map
(2019-01-29) flat-containers kona-2019 library-design sg14 wg21 - Colossal Cave Adventure: open world challenge (2019-01-28) adventure digital-antiquaria puzzles web
-
Hot takes on
flat_map
,resize_default_init
, andranges::to
(2019-01-28) flat-containers kona-2019 rant wg21 -
nodiscard
philosophies (2019-01-25) attributes compiler-diagnostics library-design - Discrete Peaceful Encampments (2019-01-24) math puzzles
- Peaceful Encampments, round 2 (2019-01-21) math puzzles web
- Covariance and contravariance in C++ (2019-01-20) concepts implementation-divergence metaprogramming templates variadic-templates
-
Pointer comparisons with
std::less<void>
: a horror story (2019-01-20) metaprogramming operator-spaceship rant standard-library-trivia undefined-behavior -
Is this
std::vector
? (2019-01-17) metaprogramming -
requires
-expression grammar trivia (2019-01-17) concepts language-design rant - Measuring adoption of C++17 and CTAD in real codebases (2019-01-16) class-template-argument-deduction llvm science
-
Why do we require
requires requires
? (2019-01-15) concepts - On choosing the exact right terminology (2019-01-15) old-shit sre
- The blow-up problem (2019-01-14) jokes science
- Les Fleurs de Tarbes (2019-01-14) litclub sre
- Happy birthday, Donald Knuth! and Peaceful Encampments (2019-01-10) adventure celebration-of-mind knuth litclub math puzzles web
-
37 percent of HyperRogue’s compilation time is due to
std::function
(2019-01-06) compile-time-performance hyperrogue sg14 type-erasure war-stories - Booth on Cassio (2019-01-05) litclub
-
const
is a contract (2019-01-03) c++-learner-track c++-style move-semantics slogans - Should foo be move-only? (2019-01-02) concepts library-design move-semantics type-erasure
December 2018
-
for (auto&& elt : range)
Still Always Works (2018-12-27) c++-style ranges - Against the Grain: Contraception, abortion, and slow death (2018-12-26) litclub morality
- Against the Grain: Pitcher plant (2018-12-25) litclub movies
- Fictional islands that are neither fictional nor islands (2018-12-16) etymology gilbert-and-sullivan litclub today-i-learned
-
for (auto&& elt : range)
Always Works (2018-12-15) c++-style - Don’t inherit from standard types (2018-12-11) c++-style class-template-argument-deduction library-design pitfalls sd-8-adjacent slogans
- Contra CTAD (2018-12-09) blog-roundup class-template-argument-deduction compiler-diagnostics llvm pitfalls
-
Don’t put
-Weverything
in your build flags (2018-12-06) c++-style compiler-diagnostics llvm -
Pitfalls and decision points in implementing
const_iterator
(2018-12-01) antipatterns c++-style constructors library-design metaprogramming pitfalls stl-classic
November 2018
-
Remember the
ifstream
(2018-11-26) classical-polymorphism concepts library-design pitfalls rant - Meta-sudoku, round 4: A valid meta-puzzle (2018-11-20) math puzzles
- How DNS got so complicated (2018-11-20) networking sre wg21
- Meta-sudoku, round 3: D’oh! (2018-11-19) math puzzles
- “Counterfactual mugging” a.k.a. “charity” (2018-11-19) blog-roundup litclub morality us-politics
- Meta-sudoku, round 2 (2018-11-18) math puzzles
- Execution-agent-local storage (2018-11-14) memes rant thread-local-storage
- Callee-destroy versus caller-destroy parameter lifetimes (2018-11-12) attributes copy-elision pitfalls
-
[[trivially_relocatable]]
in San Diego: call for reader feedback (2018-11-11) relocatability san-diego-2018 -
An argument pro liberal use of
[[nodiscard]]
(2018-11-06) c++-style pitfalls - WG21: Avoid creating ADL situations on functions with semi-common names (2018-11-04) argument-dependent-lookup customization-points pitfalls proposal san-diego-2018 wg21
October 2018
- Puzzle: Sudoku Stories (2018-10-26) math puzzles
- C++2a idioms for library feature detection (2018-10-26) c++-style feature-test-macros
- Cheaply relocatable, but not trivially relocatable (2018-10-26) relocatability
- I won’t be in San Diego (2018-10-20) relocatability san-diego-2018
- The “Red Clause” (2018-10-05) old-shit us-politics
- Trivially Relocatable FAQ (2018-10-04) relocatability
September 2018
- Trivially Relocatable versus Destructive Movable (2018-09-28) conferences cppcon relocatability
- Pray-Mister-Babbage problems (2018-09-26) memes old-shit
- “Perfect backwarding” (2018-09-25) copy-elision metaprogramming
- Concepts as door-opening robots (2018-09-24) c++-style concepts cppcon paradigm-shift
- A simpler SUBSUMES() macro (2018-09-23) concepts metaprogramming preprocessor rant
- A use-case for member concepts and/or template concept parameters (2018-09-17) concepts preprocessor rant
- Data race when catching by non-const reference (2018-09-16) c++-style copy-elision exception-handling
- Homeworlds: The Yellowbird Mistake, Part II (2018-09-15) board-games homeworlds
- Homeworlds: The Yellowbird Mistake (2018-09-10) board-games homeworlds
- Constrained forwarding references considered sketchy as frick (2018-09-09) concepts metaprogramming pitfalls
- The big problems for C++11 SFINAE (2018-09-08) concepts metaprogramming rant
- The Mysteries of London (2018-09-05) litclub old-shit us-politics
August 2018
-
make_range
andreversed
(2018-08-29) pearls ranges templates - Stopping the cascade of errors (2018-08-23) compiler-diagnostics concepts metaprogramming pearls templates
- C++ doesn’t know how to do customization points that aren’t operators (2018-08-23) customization-points operator-spaceship rant
-
Exploring C++ types with
puts(__PRETTY_FUNCTION__)
(2018-08-22) msvc pearls templates -
mutable
and “trivially fooable” (2018-08-19) relocatability triviality wg21 - Fixing ADL, Round 2 (2018-08-14) argument-dependent-lookup llvm proposal
- Field-testing Herb Sutter’s Modest Proposal to Fix ADL (2018-08-13) argument-dependent-lookup compiler-diagnostics llvm pitfalls proposal
-
The
Auto
macro (2018-08-11) c++-style lambdas memes pearls preprocessor -
The
FORCE_CONSTEXPR
macro (2018-08-07) constexpr pearls preprocessor sufficiently-smart-compiler - Comparison categories for narrow-contract comparators (2018-08-07) concepts contracts operator-spaceship undefined-behavior
- MathJax in Jekyll (2018-08-05) how-to knuth web
- Quantum Computing for the Determined (2018-08-05) blog-roundup math science
-
Case study: Making
std::any
trivially relocatable (2018-08-02) library-design relocatability
July 2018
- The Three Impostors: Four-ale and six-ale (2018-07-26) litclub old-shit today-i-learned weird-fiction
- Template metaprogramming: Iteration is better than recursion (2018-07-23) compile-time-performance metaprogramming templates variadic-templates
- Godspell and Max Havelaar (2018-07-23) jokes morality movies old-shit
- Announcing “trivially relocatable” (2018-07-18) proposal relocatability
-
What does the Standard mean by “
_traits
”? (2018-07-14) allocators customization-points library-design metaprogramming templates wg21 - When is a trivially copyable object not trivially copyable? (2018-07-13) pitfalls proposal relocatability triviality wg21
- If English was written like Chinese (2018-07-13) blog-roundup linguistics typography
-
operator auto
(2018-07-12) implementation-divergence metaprogramming proposal rant today-i-learned - Renowned author Dan Brown; London’s Gold-Mines (2018-07-10) litclub old-shit
- SCARY metafunctions (2018-07-09) compile-time-performance library-design metaprogramming
- Roll for member functions (2018-07-09) cpplang-slack memes
- C++ quiz of the day (2018-07-08) pitfalls relocatability
- Defaulted destructor inhibits move (2018-07-07) pitfalls
- Thoughts on “sanely move-assignable” (2018-07-06) concepts relocatability
- Portia’s Caskets, Explained (2018-07-06) blog-roundup jokes math puzzles
- Assume a spherical politician (2018-07-04) morality science us-politics
- Trivially-constructible-from (2018-07-03) rant relocatability standard-library-trivia triviality
- CppCon 2018 Early Bird Registration closes on July 7th (2018-07-02) conferences cppcon
June 2018
- Broken Koans (2018-06-30) blog-roundup litclub
- Trivially swappable (2018-06-29) move-semantics proposal relocatability triviality value-semantics
- shields.io (2018-06-26) hyperrogue sre today-i-learned web
- The surprisingly high cost of static-lifetime constructors (2018-06-26) benchmarks compile-time-performance hyperrogue initializer-list pitfalls war-stories
- Madame Scarron (2018-06-22) litclub old-shit
- “We were defeated by one thing only—” (2018-06-22) litclub sre
- Is your constructor an object-factory or a type-conversion? (2018-06-21) constructors initialization library-design rant
- ’Ware Wire (2018-06-20) litclub poetry
-
inplace_foo
versusfixed_capacity_foo
(2018-06-18) library-design naming sg14 - The Fundamental Theorem of Software Engineering (2018-06-18) c++-style memes
- Which in your case you have not got (2018-06-17) litclub naming poetry today-i-learned
- Avoid ADL calls to functions with common names (2018-06-17) argument-dependent-lookup customization-points hyperrogue pitfalls war-stories
- My C++Now 2018 talks are captioned (2018-06-13) allocators conferences cppnow relocatability
- Perennial impossibilities of C++ (2018-06-12) constexpr language-design metaprogramming
-
Attribute
noexcept_verify
(2018-06-12) compiler-diagnostics exception-handling proposal -
has_no_padding_bits
(2018-06-08) proposal rant -
Pointer to raw memory?
T*
. (2018-06-08) allocators c++-style library-design rant standard-library-trivia - Stone Soup (2018-06-06) wg21
-
<memory_resource>
for libc++ (2018-06-05) allocators library-design llvm - My C++Now 2018 talks are up (2018-06-04) allocators conferences cppnow relocatability
-
Setting errno in
operator T
(2018-06-01) thread-local-storage
May 2018
- View types with metadata cause problems (2018-05-30) library-design parameter-only-types pitfalls sg14 wg21
- Rubens tube (2018-05-30) science today-i-learned
- Thoughts on Concepts, P0745, and P1079 (2018-05-28) concepts wg21
-
In praise of
make_unique
(2018-05-26) c++-style smart-pointers standard-library-trivia - Great Deploy Plans of History: Time Zones (2018-05-21) old-shit sre
- Superconstructing super elider, round 2 (2018-05-17) blog-roundup copy-elision move-semantics today-i-learned
- Contra implicit declarations of struct types (2018-05-16) language-design pitfalls rant
- The Ignorable Attributes Rule (2018-05-15) attributes language-design wg21-folkloristics
- A pro-default-constructibility experiment from 2007 (2018-05-10) concepts constructors rant science
- Default-constructibility is overrated (2018-05-10) concepts constructors naming rant templates value-semantics wg21
- Puzzle: Policing Squaresville (2018-05-10) blog-roundup math puzzles
- Hiding template parameters from casual users (2018-05-09) c++-style templates
-
[[trivial_abi]]
101 (2018-05-02) attributes copy-elision llvm sg14
April 2018
- Contra locales (2018-04-30) concurrency library-design mailing-list-quotes
- Happy birthday, Don Woods (2018-04-30) adventure board-games digital-antiquaria knuth
-
std::priority_queue
is missing an operation (2018-04-27) benchmarks data-structures library-design proposal - Embedding quotes in strings (2018-04-27) c++-style pearls preprocessor war-stories
- WG21 and the National Popular Vote Compact (2018-04-26) us-politics wg21
- The Lakos Rule (2018-04-25) c++-style contracts undefined-behavior wg21-folkloristics
- Downsides of omitting trivial destructor calls (2018-04-17) pitfalls standard-library-trivia sufficiently-smart-compiler today-i-learned
- How to build LLVM from source (2018-04-16) how-to llvm
- Chinese fonts, and METAFONT (2018-04-15) blog-roundup esolang knuth typography
- Contra built-in library types (2018-04-15) implementation-divergence language-design operator-spaceship rant
- Hanabi set-packing puzzle (2018-04-09) board-games math puzzles
- A modest proposal for a GCC diagnostic (2018-04-09) compiler-diagnostics memes pitfalls this-should-exist
- Copy Elision in Throw Statements (2018-04-09) copy-elision exception-handling move-semantics sufficiently-smart-compiler
-
On lifetime extension and
decltype(auto)
(2018-04-05) c++-style lifetime-extension move-semantics - The Description of a New World, Called The Blazing-World (1666) (2018-04-05) litclub old-shit
- The Demagogue in Politics (2018-04-03) movies old-shit transcription us-politics
-
Use-cases for
false_v
(2018-04-02) proposal templates type-traits undefined-behavior
March 2018
- Hat-game strategies in Hanabi (2018-03-29) board-games
- The Superconstructing Super Elider (2018-03-29) copy-elision move-semantics proposal sufficiently-smart-compiler
- Parameter-only types, Round 2 (2018-03-28) c++-style paradigm-shift parameter-only-types
-
std::string_view
is a parameter-only type (2018-03-27) c++-style lifetime-extension paradigm-shift parameter-only-types pitfalls - Johnny Eck in Tarzan Escapes (2018-03-24) movies old-shit today-i-learned
- This should exist: Markov music for radio lacunae (2018-03-21) music this-should-exist
- Namespaces for UDLs (2018-03-21) jacksonville-2018 proposal wg21
- Customization point design for library functions (2018-03-19) argument-dependent-lookup customization-points library-design memes templates
- The C++Now 2018 schedule is out (2018-03-19) cppnow
- P0732R0 and “trivially comparable” (2018-03-19) jacksonville-2018 language-design naming operator-spaceship templates triviality value-semantics wg21
- Happy Saint Patrick’s Day! (2018-03-17) memes
- Zoological case naming (2018-03-16) c++-style memes naming
- Async/await, and coloring schemes in general (2018-03-16) blog-roundup coroutines exception-handling language-design paradigm-shift
-
West
const
(2018-03-15) holy-wars memes - Hot take: P0947R0 “Another take on Modules” (2018-03-14) jacksonville-2018 language-design modules rant wg21
-
On
raise
versusthrow
, and the Mandela Effect (2018-03-14) coroutines exception-handling - Providentissimus Deus (2018-03-13) morality undefined-behavior
-
Using
future_error
for control flow (2018-03-13) c++-style concurrency exception-handling -
The “
unsigned
for value range” antipattern (2018-03-13) antipatterns c++-style rant undefined-behavior - First post — Jekyll Now (2018-03-13) cpplang-slack how-to web