Part II. Miscellaneous classes and functions

Index

35. Typesafe numerical aliases
Base classes
Testing for overflow
Using typesafe numerical aliases in unordered containers
36. Constructing visitors for std::variants
Checking if a type is visited by a variant
37. Sorting by indexes
38. Application identifiers and 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. Specialization for std::hash<void>
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 and range vectors
Modifiers
Vectors of ranges
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