3 ms·
"since C++17", I see.. I'm curious if it uses more space than "char *" Also it's not great because I should be able to pass such a string through functions t
by jhallenworld 8y ago
"since C++17", I see.. I'm curious if it uses more space than "char *"
Also it's not great because I should be able to pass such a string through functions that expect std::string. A NULL string should act just like an empty string except that you can test it for NULL.
- thestoicattack 8y agoYes. std::optional<T> allocates the T in-place. Just checked compiler explorer, and on g++ 8.1, sizeof(std::string) == 32, sizeof(std::optional<std::string>) == 40. (of course sizeof(char* ) == 8)