Возможно ли обеспечить неявное преобразование между базовыми типами в C++?C++ пользовательское преобразование между базовыми типами
В частности, у меня есть Xerces-с библиотекой, которая имеет:
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 в функции преобразования - уродливый!
Спасибо. Я знал это. Можете ли вы предложить способ достичь того, чего я пытаюсь достичь? – Tom