Review of a C++ missing characters snippet
Instead of starting from a zero-ed bitset and then set them to true one by one, you could start with all true, set to false one by one and then use std::bitset::none() to break the loop.

But, apart from this small thing, std::string will probably preallocate memory (on the heap or on the stack; it's implementation dependent), whether or not you add a letter.  My advice would be to use an std::array with a fixed size of 26 (or your own stack implementation of a string) to directly store the letters, and remove the bitset and std::string.

That should simplified the code.  As the 26 chars will be stored in 7 int, copying or overwriting that size from the stack should be blazing fast (the cache lines of a modern processor is 32 bytes) compared to multiple math operations and a potential heap allocation.