Is it valid, to use std::string to hold binary data, to avoid manual dynamic memory management

后端 未结 5 1839
醉话见心
醉话见心 2021-02-05 00:55

Pay attention to base64_decode in http://www.adp-gmbh.ch/cpp/common/base64.html

std::string base64_decode(std::string const& encoded_string)
         


        
5条回答
  •  萌比男神i
    2021-02-05 01:57

    Yes. std::string can hold any char value ('\0' has no special meaning). However I wouldn't be surprised finding some C++ functions (e.g. from external libraries) having problems with strings with embedded NULs.

    Anyway I don't understand what you are going to gain with an std::string instead of std::vector that would make your intentions more clear and that offers more guarantees (e.g. that all the bytes are in contiguous not-shared memory so that you can pass &x[0] to someone expecting a plain buffer for direct access).

提交回复
热议问题