爲了方便起見,我希望能夠在其他庫中定義的兩種類型之間進行轉換。 (具體QString
從ICU庫Qt庫和UnicodeString
)項目中的命名空間現在,我已經創建了實用功能:其他庫中的類型之間的C++轉換運算符
namespace MyProject {
const icu_44::UnicodeString ToUnicodeString(const QString& value);
const QString ToQString(const icu_44::UnicodeString& value);
}
這一切都很好,但我想知道如果有一個更優雅的方式。理想情況下,我希望能夠使用投射算子在它們之間進行轉換。然而,我確實希望保留轉換的明確性質。隱式轉換不應該是可能的。
有沒有更好的方法來實現這一點,而無需修改庫的源代碼?可能有一些運算符重載語法?
謝謝;我只是好奇,如果有什麼我失蹤的語言。看起來像原來的方式是儘可能簡單,你可以得到。 – 2010-06-02 15:15:50