Part II. Miscellaneous classes and functions


36. Typesafe numerical aliases
Base classes
Testing for overflow
Using typesafe numerical aliases in unordered containers
37. Constructing visitors for std::variants
38. Application-specific configuration directories
39. Virtual inheritance-based function callable objects
Virtual inheritance-based callables as reference-counted objects
Using callable objects to implement the callback design pattern
x::invoke_callbacks() helpers
Single execution thread callback container
Lambda weak pointer captures
40. Sentries
41. String conversions
Using x::value_string with custom classes
Convenience functions
42. A C++-ish strtok(); strsplit(), join(), and trim()
43. A joining iterator
44. An ordered cache
45. A tokenizer helper template
46. Shell-like string split
47. The x::timespec class
48. Formatting memory or file sizes
49. A reference-counted vector class
50. Sorted vectors
51. A postponed function call or an object call
Converting tuples to parameter packs
52. CSV-formatted data
53. Free disk space
54. Loading shared libraries