C++ 中string類型數據可以被隱式轉換成string_view,反之需要顯式轉換
記錄工作中遇到的問題。
考慮到項目中的一個方法里的輸入參數不能被隨意改變的需求,想把輸入的string類型參數變成string_view, 但是由于該方法內部有別的函數要改變這個string輸入參數,運行時被提示不能對string_view的參數進行更改。
string類型數據可以被隱式/顯示轉換成string_view類型,
eg.
#include <iostream>
int main()
{
? ? std::string c = "c";
? ? std::string_view v;
? ? v = c;
? ? std::cout << v << std::endl;
? ? return 0;
}
但string_view類型的數據不能被隱式轉換成string類型,需要顯式轉換
eg.
int main()
{
? ? std::string c = "c";
? ? std::string_view v;
? ? v = c;
? ? std::cout << v << std::endl;
? ??
? ? std::string n;
? ? n = static_cast<std::string>(v) + c;
? ? std::cout << n << std::endl;
? ? return 0;
}
=reference=
[1]https://zhuanlan.zhihu.com/p/98089982
=End=
標簽: