Using std::string_view with api, what expects null terminated string

前端 未结 3 1673
予麋鹿
予麋鹿 2020-12-11 01:26

I have a method that takes std::string_view and uses function, which takes null terminated string as parameter. For example:

void stringFunc(std         


        
3条回答
  •  攒了一身酷
    2020-12-11 01:55

    I solved this problem by creating an alternate string_view class called zstring_view. It's privately inherited from string_view and contains much of its interface.

    The principal difference is that zstring_view cannot be created from a string_view. Also, any string_view APIs that would remove elements from the end are not part of the interface or they return a string_view instead of a zstring_view.

    They can be created from any NUL-terminated string source: std::string and so forth. I even created special user-defined literal suffixes for them: _zsv.

    The idea being that, so long as you don't put a non-NUL-terminated string into zstring_view manually, all zstring_views should be NUL-terminated. Like std::string, the NUL character is not part of the size of the string, but it is there.

    I find it very useful for dealing with C interfacing.

提交回复
热议问题