[英]C++ custom conversion between basic types
是否可以在C ++中的基本類型之間提供自定義的隱式轉換?
具體來說,我有一個Xerces-c庫,它具有:
using XMLCh = unsigned short int;
但是,當然沒有辦法提供文字字符串作為unsigned short int
。 所以我想要一些:
operator unsigned short int*(char16_t* s) { return reinterpret_cast<unsigned short int*>(s); }
operator char16_t*(unsigned short int* s) { return reinterpret_cast<char16_t*>(s); }
然后,您可以說:
XMLCh *str = u"Hello, world.";
和:
DOMElement* pEl = ...;
std::u16string str = pEl->getNodeName();
等等。 就目前而言,我將不得不將每個Xerces調用包裝在轉換函數中-難看!
只能為class
es和struct
定義自定義轉換運算符。 您不能為內置類型定義它們。
此外,自定義轉換運算符不能是非成員函數。 這限制了它們的定義位置以及可以定義的對象類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.