Возможным решением было бы обернуть эти типы и предоставить явные конструкторы преобразования. Я так понимаю, вы не можете изменить источник как QString
, так и icu_44::UnicodeString
, который был бы самым естественным местом для конструкторов преобразования. Использование ключевого слова explicit
запрещает неявное преобразование, поэтому преобразования могут возникать только тогда, когда вы пишете QString converted(original)
с original
значением типа icu_44::UnicodeString
или наоборот.
Единственная проблема с этим подход заключается в том, что вы должны обернуть свои типы данных. Я не знаю, вам когда-нибудь понадобится больше операций над этими типами, которые в настоящее время не представлены в реальных библиотеках, или нет, но если это так, то обертывание - это возможный путь