Как конвертировать boost :: string_view в std :: string_view? - PullRequest
0 голосов
/ 02 апреля 2019

Я использую библиотеку наддува, которая использует boost::string_view.Тем не менее, я хотел бы использовать std::string_view в своем коде.
Q: Как лучше всего конвертировать между этими двумя?

В данный момент я использую:

void foo(std::string_view sv) {
# ...
}
void foo(boost::string_view bsv) {
  foo(std::string(bsv));
}

Но это создает ненужную строку.

1 Ответ

3 голосов
/ 02 апреля 2019

В одну сторону:

void foo(std::string_view sv);

inline void foo(boost::string_view bsv) {
  foo(std::string_view(bsv.data(), bsv.size()));
}

Обязательно передайте длину в std::string_view, в противном случае она вызывает Traits::length (std::strlen) без необходимости.

...