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
Checking if a type is visited by a variant
38. Sorting by indexes
39. Application-specific configuration directories
40. 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
41. Sentries
42. String conversions
Using x::value_string with custom classes
Convenience functions
43. A C++-ish strtok(); strsplit(), join(), and trim()
44. A joining iterator
45. An ordered cache
46. A tokenizer helper template
47. Shell-like string split
48. The x::timespec class
49. Formatting memory or file sizes
50. A reference-counted vector class
51. Sorted vectors
52. A postponed function call or an object call
Converting tuples to parameter packs
53. CSV-formatted data
54. Free disk space
55. Optional function arguments
Declaring an x::optional_args
Retrieving optional arguments
Optional arguments using reference wrappers
Using x::optional_arg_or
56. Loading shared libraries