c++ - two - string equality operator



Existe sentido em usar const std:: string & argumentos no C++ 17? (1)

Obtendo string_view no C ++ 17, obtivemos um método barato de passar std::string e char* para funções que não se apropriam da string e evitam fazer cópias temporárias. Usando std::string passado por valor e std::move , obtemos uma passagem rápida e explícita da propriedade da string para as referências de valor r e valor l.

Minha pergunta é: existe algum benefício no uso de const std::string& como qualquer parâmetro de função no novo padrão C ++?


Sim.

O problema com std::string_view é que ele não se lembra se aponta para uma string terminada por nulo ou não.

Se você estiver escrevendo um wrapper para uma API C que usa cadeias terminadas em nulo, copia constantemente seus std::string_view s para std::string s para garantir que você tenha terminadores nulos.





c++17