![](/img/trans.png)
[英]lifetime extension for function taking parameter by const& and returning by const&
[英]How to use QString::replace on a const& parameter?
以非破壞性方式調用QString::replace
的最佳方法是什么?
我有一個將const QString&
作為參數的函數,所以我不能直接調用調用replace
因為此函數會修改對象(與remove
相同)。
我想在參數上鏈接調用,並將其用作表達式:
return myString.replace(QRegExp("\\s+"), "_").remove("someSuffix");
當然,我可以更改函數定義以按值而不是引用采用QString,但是我不喜歡這種解決方案。 后來人們可能想知道為什么我們不像其他參數那樣通過引用傳遞。
我也可以制作本地副本,但是還有其他實用/干凈的方法嗎?
您可以創建一個臨時文件並對其進行操作:
return QString(argument).replace(QRegExp("\\s+"), "_").remove("someSuffix");
但是,我認為按值接受參數沒有什么不好。 您正在以一種或另一種方式復制自變量,並且按值接受顯然會向用戶表明這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.